Skip to content

Commit c1e3eed

Browse files
authored
Merge pull request #190 from contentstack/enh/DX-7308-role-migration
refactor: migrate RoleModel and related tests to use System.Text.Json for serialization
2 parents 771bf58 + 9cf9907 commit c1e3eed

6 files changed

Lines changed: 60 additions & 64 deletions

File tree

Contentstack.Management.Core.Tests/Contentstack.Management.Core.Tests.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,5 @@
5858
<!-- Contentstack020_WorkflowTest.cs - RE-ENABLED for Workflow module STJ migration -->
5959
<Compile Remove="IntegrationTest\Contentstack012b_ContentTypeExpandedIntegrationTest.cs" />
6060

61-
<Compile Remove="IntegrationTest\Contentstack019_RoleTest.cs" />
6261
</ItemGroup>
6362
</Project>

Contentstack.Management.Core.Tests/IntegrationTest/Contentstack019_RoleTest.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using Contentstack.Management.Core.Tests.Helpers;
99
using Contentstack.Management.Core.Tests.Model;
1010
using Microsoft.VisualStudio.TestTools.UnitTesting;
11-
using Newtonsoft.Json.Linq;
11+
using System.Text.Json.Nodes;
1212

1313
namespace Contentstack.Management.Core.Tests.IntegrationTest
1414
{
@@ -66,7 +66,7 @@ private static RoleModel BuildMinimalRoleModel(string uniqueName)
6666

6767
private static string ParseRoleUid(ContentstackResponse response)
6868
{
69-
var jo = response.OpenJObjectResponse();
69+
var jo = response.OpenJsonObjectResponse();
7070
return jo?["role"]?["uid"]?.ToString();
7171
}
7272

@@ -87,7 +87,7 @@ private void SafeDelete(string roleUid)
8787
}
8888
}
8989

90-
private static bool RolesArrayContainsUid(JArray roles, string uid)
90+
private static bool RolesArrayContainsUid(JsonArray roles, string uid)
9191
{
9292
if (roles == null || string.IsNullOrEmpty(uid))
9393
{
@@ -324,7 +324,7 @@ public void Test001_Should_Create_Role_Sync()
324324
roleUid = ParseRoleUid(response);
325325
AssertLogger.IsNotNull(roleUid, "role uid");
326326

327-
var jo = response.OpenJObjectResponse();
327+
var jo = response.OpenJsonObjectResponse();
328328
AssertLogger.AreEqual(name, jo["role"]?["name"]?.ToString(), "Response name should match", "RoleName");
329329
}
330330
finally
@@ -349,7 +349,7 @@ public void Test002_Should_Fetch_Role_Sync()
349349
ContentstackResponse fetchResponse = _stack.Role(roleUid).Fetch();
350350
AssertLogger.IsTrue(fetchResponse.IsSuccessStatusCode, "Fetch should succeed", "FetchSyncSuccess");
351351

352-
var role = fetchResponse.OpenJObjectResponse()?["role"];
352+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
353353
AssertLogger.AreEqual(name, role?["name"]?.ToString(), "Fetched name should match", "FetchedName");
354354
AssertLogger.AreEqual(roleUid, role?["uid"]?.ToString(), "Fetched uid should match", "FetchedUid");
355355
}
@@ -375,7 +375,7 @@ public void Test003_Should_Query_Roles_Sync()
375375
ContentstackResponse queryResponse = _stack.Role().Query().Find();
376376
AssertLogger.IsTrue(queryResponse.IsSuccessStatusCode, "Query Find should succeed", "QueryFindSuccess");
377377

378-
var roles = queryResponse.OpenJObjectResponse()?["roles"] as JArray;
378+
var roles = queryResponse.OpenJsonObjectResponse()?["roles"] as JsonArray;
379379
AssertLogger.IsNotNull(roles, "roles array");
380380
AssertLogger.IsTrue(
381381
RolesArrayContainsUid(roles, roleUid),
@@ -408,7 +408,7 @@ public void Test004_Should_Update_Role_Sync()
408408

409409
ContentstackResponse fetchResponse = _stack.Role(roleUid).Fetch();
410410
AssertLogger.IsTrue(fetchResponse.IsSuccessStatusCode, "Fetch after update should succeed", "FetchAfterUpdate");
411-
var role = fetchResponse.OpenJObjectResponse()?["role"];
411+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
412412
AssertLogger.AreEqual(updatedName, role?["name"]?.ToString(), "Name should reflect update", "UpdatedName");
413413
}
414414
finally
@@ -466,7 +466,7 @@ public async Task Test006_Should_Create_Role_Async()
466466
roleUid = ParseRoleUid(response);
467467
AssertLogger.IsNotNull(roleUid, "role uid");
468468

469-
var jo = response.OpenJObjectResponse();
469+
var jo = response.OpenJsonObjectResponse();
470470
AssertLogger.AreEqual(name, jo["role"]?["name"]?.ToString(), "Response name should match", "RoleName");
471471
}
472472
finally
@@ -491,7 +491,7 @@ public async Task Test007_Should_Fetch_Role_Async()
491491
ContentstackResponse fetchResponse = await _stack.Role(roleUid).FetchAsync();
492492
AssertLogger.IsTrue(fetchResponse.IsSuccessStatusCode, "FetchAsync should succeed", "FetchAsyncSuccess");
493493

494-
var role = fetchResponse.OpenJObjectResponse()?["role"];
494+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
495495
AssertLogger.AreEqual(name, role?["name"]?.ToString(), "Fetched name should match", "FetchedName");
496496
AssertLogger.AreEqual(roleUid, role?["uid"]?.ToString(), "Fetched uid should match", "FetchedUid");
497497
}
@@ -517,7 +517,7 @@ public async Task Test008_Should_Query_Roles_Async()
517517
ContentstackResponse queryResponse = await _stack.Role().Query().FindAsync();
518518
AssertLogger.IsTrue(queryResponse.IsSuccessStatusCode, "Query FindAsync should succeed", "QueryFindAsyncSuccess");
519519

520-
var roles = queryResponse.OpenJObjectResponse()?["roles"] as JArray;
520+
var roles = queryResponse.OpenJsonObjectResponse()?["roles"] as JsonArray;
521521
AssertLogger.IsNotNull(roles, "roles array");
522522
AssertLogger.IsTrue(
523523
RolesArrayContainsUid(roles, roleUid),
@@ -550,7 +550,7 @@ public async Task Test009_Should_Update_Role_Async()
550550

551551
ContentstackResponse fetchResponse = await _stack.Role(roleUid).FetchAsync();
552552
AssertLogger.IsTrue(fetchResponse.IsSuccessStatusCode, "FetchAsync after update should succeed", "FetchAsyncAfterUpdate");
553-
var role = fetchResponse.OpenJObjectResponse()?["role"];
553+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
554554
AssertLogger.AreEqual(updatedName, role?["name"]?.ToString(), "Name should reflect update", "UpdatedName");
555555
}
556556
finally
@@ -888,11 +888,11 @@ public void Test023_Should_Accept_Create_Role_With_Null_Rules_Sync()
888888
AssertLogger.IsNotNull(roleUid, "NullRulesAccepted");
889889

890890
// Verify API accepted the request - detailed rule validation is optional
891-
var responseContent = response.OpenJObjectResponse();
891+
var responseContent = response.OpenJsonObjectResponse();
892892
if (responseContent?["role"] != null)
893893
{
894894
var role = responseContent["role"];
895-
var rules = role["rules"] as JArray;
895+
var rules = role["rules"] as JsonArray;
896896
if (rules != null && rules.Count > 0)
897897
{
898898
AssertLogger.IsTrue(true, "DefaultRulesAdded");
@@ -941,7 +941,7 @@ public void Test024_Should_Accept_Create_Role_With_Empty_Rules_Sync()
941941
AssertLogger.IsNotNull(roleUid, "EmptyRulesAccepted");
942942

943943
// Verify API accepted the request - detailed rule validation is optional
944-
var responseContent = response.OpenJObjectResponse();
944+
var responseContent = response.OpenJsonObjectResponse();
945945
if (responseContent?["role"] != null)
946946
{
947947
AssertLogger.IsTrue(true, "EmptyRulesHandledByAPI");
@@ -985,7 +985,7 @@ public void Test025_Should_Accept_Create_Role_With_Empty_Branches_Sync()
985985
AssertLogger.IsNotNull(roleUid, "EmptyBranchesAccepted");
986986

987987
// Verify API accepted the request - detailed branch validation is optional
988-
var responseContent = response.OpenJObjectResponse();
988+
var responseContent = response.OpenJsonObjectResponse();
989989
if (responseContent?["role"] != null)
990990
{
991991
AssertLogger.IsTrue(true, "EmptyBranchesHandledByAPI");
@@ -1029,7 +1029,7 @@ public void Test026_Should_Accept_Create_Role_With_Nonexistent_Branch_Sync()
10291029
AssertLogger.IsNotNull(roleUid, "NonexistentBranchAccepted");
10301030

10311031
// Verify API accepted the request - detailed branch validation is optional
1032-
var responseContent = response.OpenJObjectResponse();
1032+
var responseContent = response.OpenJsonObjectResponse();
10331033
if (responseContent?["role"] != null)
10341034
{
10351035
AssertLogger.IsTrue(true, "NonexistentBranchHandledByAPI");
@@ -1144,7 +1144,7 @@ public void Test029_Should_Accept_Update_Role_With_Empty_Name_Sync()
11441144
AssertLogger.IsTrue(true, "EmptyNameUpdateAccepted");
11451145

11461146
// Verify API preserved original name when empty name provided
1147-
var role = updateResponse.OpenJObjectResponse()?["role"];
1147+
var role = updateResponse.OpenJsonObjectResponse()?["role"];
11481148
var currentName = role?["name"]?.ToString();
11491149
AssertLogger.AreEqual(originalName, currentName, "OriginalNamePreserved");
11501150
AssertLogger.IsTrue(!string.IsNullOrEmpty(currentName), "NameNotEmpty");
@@ -1401,7 +1401,7 @@ public async Task Test035_Should_Accept_Update_Role_With_Empty_Name_Async()
14011401
AssertLogger.IsTrue(true, "EmptyNameUpdateAcceptedAsync");
14021402

14031403
// Verify API preserved original name when empty name provided
1404-
var role = updateResponse.OpenJObjectResponse()?["role"];
1404+
var role = updateResponse.OpenJsonObjectResponse()?["role"];
14051405
var currentName = role?["name"]?.ToString();
14061406
AssertLogger.AreEqual(originalName, currentName, "OriginalNamePreservedAsync");
14071407
AssertLogger.IsTrue(!string.IsNullOrEmpty(currentName), "NameNotEmptyAsync");
@@ -2264,7 +2264,7 @@ public void Test054_Should_Handle_Unicode_Characters_In_Role_Name_Sync()
22642264
ContentstackResponse fetchResponse = _stack.Role(roleUid).Fetch();
22652265
if (fetchResponse.IsSuccessStatusCode)
22662266
{
2267-
var role = fetchResponse.OpenJObjectResponse()?["role"];
2267+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
22682268
var fetchedName = role?["name"]?.ToString();
22692269
AssertLogger.AreEqual(unicodeName, fetchedName, "Unicode name should be preserved", "UnicodePreserved");
22702270
}
@@ -2360,7 +2360,7 @@ public void Test056_Should_Handle_Stack_Role_Limits_Sync()
23602360
else if (response.StatusCode == (HttpStatusCode)422) // Unprocessable Entity
23612361
{
23622362
// Check for role limit error (Error Code 157)
2363-
var errorContent = response.OpenJObjectResponse();
2363+
var errorContent = response.OpenJsonObjectResponse();
23642364
var errorCode = errorContent?["error_code"]?.ToString();
23652365

23662366
if (errorCode == "157")
@@ -2574,7 +2574,7 @@ public void Test059_Should_Handle_Concurrent_Role_Modifications_Sync()
25742574
ContentstackResponse fetchResponse = _stack.Role(roleUid).Fetch();
25752575
if (fetchResponse.IsSuccessStatusCode)
25762576
{
2577-
var role = fetchResponse.OpenJObjectResponse()?["role"];
2577+
var role = fetchResponse.OpenJsonObjectResponse()?["role"];
25782578
AssertLogger.IsNotNull(role, "ConcurrentFinalState");
25792579
}
25802580

Contentstack.Management.Core.Unit.Tests/Models/RoleTest.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void Should_Create_Role()
5959
ContentstackResponse response = _stack.Role().Create(_fixture.Create<RoleModel>());
6060

6161
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
62-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
62+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
6363
}
6464

6565
[TestMethod]
@@ -68,7 +68,7 @@ public async System.Threading.Tasks.Task Should_Create_Role_Async()
6868
ContentstackResponse response = await _stack.Role().CreateAsync(_fixture.Create<RoleModel>());
6969

7070
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
71-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
71+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
7272
}
7373

7474
[TestMethod]
@@ -77,7 +77,7 @@ public void Should_Query_Role()
7777
ContentstackResponse response = _stack.Role().Query().Find();
7878

7979
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
80-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
80+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
8181
}
8282

8383
[TestMethod]
@@ -86,7 +86,7 @@ public async System.Threading.Tasks.Task Should_Query_Role_Async()
8686
ContentstackResponse response = await _stack.Role().Query().FindAsync();
8787

8888
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
89-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
89+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
9090
}
9191

9292
[TestMethod]
@@ -95,7 +95,7 @@ public void Should_Fetch_Role()
9595
ContentstackResponse response = _stack.Role(_fixture.Create<string>()).Fetch();
9696

9797
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
98-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
98+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
9999
}
100100

101101
[TestMethod]
@@ -104,7 +104,7 @@ public async System.Threading.Tasks.Task Should_Find_Role_Async()
104104
ContentstackResponse response = await _stack.Role(_fixture.Create<string>()).FetchAsync();
105105

106106
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
107-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
107+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
108108
}
109109

110110
[TestMethod]
@@ -113,7 +113,7 @@ public void Should_Update_Role()
113113
ContentstackResponse response = _stack.Role(_fixture.Create<string>()).Update(_fixture.Create<RoleModel>());
114114

115115
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
116-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
116+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
117117
}
118118

119119
[TestMethod]
@@ -122,7 +122,7 @@ public async System.Threading.Tasks.Task Should_Update_Role_Async()
122122
ContentstackResponse response = await _stack.Role(_fixture.Create<string>()).UpdateAsync(_fixture.Create<RoleModel>());
123123

124124
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
125-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
125+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
126126
}
127127

128128
[TestMethod]
@@ -131,7 +131,7 @@ public void Should_Delete_Role()
131131
ContentstackResponse response = _stack.Role(_fixture.Create<string>()).Delete();
132132

133133
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
134-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
134+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
135135
}
136136

137137
[TestMethod]
@@ -140,7 +140,7 @@ public async System.Threading.Tasks.Task Should_Delete_Role_Async()
140140
ContentstackResponse response = await _stack.Role(_fixture.Create<string>()).DeleteAsync();
141141

142142
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
143-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
143+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
144144
}
145145

146146
[TestMethod]
@@ -149,7 +149,7 @@ public void Should_Create_Role_With_Taxonomy_Permissions()
149149
ContentstackResponse response = _stack.Role().Create(_fixture.Create<RoleModel>());
150150

151151
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
152-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
152+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
153153
}
154154

155155
[TestMethod]
@@ -158,7 +158,7 @@ public void Should_Update_Role_With_Taxonomy_Permissions()
158158
ContentstackResponse response = _stack.Role(_fixture.Create<string>()).Update(_fixture.Create<RoleModel>());
159159

160160
Assert.AreEqual(_contentstackResponse.OpenResponse(), response.OpenResponse());
161-
Assert.AreEqual(_contentstackResponse.OpenJObjectResponse().ToString(), response.OpenJObjectResponse().ToString());
161+
Assert.AreEqual(_contentstackResponse.OpenJsonObjectResponse().ToString(), response.OpenJsonObjectResponse().ToString());
162162
}
163163
}
164164
}

0 commit comments

Comments
 (0)