|
7 | 7 | using Contentstack.Management.Core.Tests.Model; |
8 | 8 | using Contentstack.Management.Core.Queryable; |
9 | 9 | using Microsoft.VisualStudio.TestTools.UnitTesting; |
10 | | -using Newtonsoft.Json.Linq; |
| 10 | +using System.Text.Json.Nodes; |
| 11 | +using System.Text.Json; |
11 | 12 | using System.Security.Cryptography; |
12 | 13 | using System.Net; |
13 | 14 | using Contentstack.Management.Core.Exceptions; |
14 | | -using Newtonsoft.Json; |
15 | 15 | using System.Threading; |
16 | 16 | using System.Linq; |
17 | 17 |
|
@@ -107,10 +107,10 @@ public async Task Test001_Should_Create_Delivery_Token() |
107 | 107 |
|
108 | 108 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Create delivery token failed", "CreateDeliveryTokenSuccess"); |
109 | 109 |
|
110 | | - var responseObject = response.OpenJObjectResponse(); |
| 110 | + var responseObject = response.OpenJsonObjectResponse(); |
111 | 111 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
112 | 112 |
|
113 | | - var tokenData = responseObject["token"] as JObject; |
| 113 | + var tokenData = responseObject["token"] as JsonObject; |
114 | 114 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
115 | 115 | AssertLogger.AreEqual(_testTokenModel.Name, tokenData["name"]?.ToString(), "Token name should match", "TokenName"); |
116 | 116 | AssertLogger.AreEqual(_testTokenModel.Description, tokenData["description"]?.ToString(), "Token description should match", "TokenDescription"); |
@@ -165,10 +165,10 @@ public async Task Test002_Should_Create_Delivery_Token_Async() |
165 | 165 |
|
166 | 166 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Async create delivery token failed", "AsyncCreateSuccess"); |
167 | 167 |
|
168 | | - var responseObject = response.OpenJObjectResponse(); |
| 168 | + var responseObject = response.OpenJsonObjectResponse(); |
169 | 169 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
170 | 170 |
|
171 | | - var tokenData = responseObject["token"] as JObject; |
| 171 | + var tokenData = responseObject["token"] as JsonObject; |
172 | 172 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
173 | 173 | AssertLogger.AreEqual(asyncTokenModel.Name, tokenData["name"]?.ToString(), "Token name should match", "AsyncTokenName"); |
174 | 174 |
|
@@ -204,10 +204,10 @@ public async Task Test003_Should_Fetch_Delivery_Token() |
204 | 204 |
|
205 | 205 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Fetch delivery token failed", "FetchSuccess"); |
206 | 206 |
|
207 | | - var responseObject = response.OpenJObjectResponse(); |
| 207 | + var responseObject = response.OpenJsonObjectResponse(); |
208 | 208 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
209 | 209 |
|
210 | | - var tokenData = responseObject["token"] as JObject; |
| 210 | + var tokenData = responseObject["token"] as JsonObject; |
211 | 211 | AssertLogger.AreEqual(_deliveryTokenUid, tokenData["uid"]?.ToString(), "Token UID should match", "TokenUid"); |
212 | 212 | AssertLogger.AreEqual(_testTokenModel.Name, tokenData["name"]?.ToString(), "Token name should match", "TokenName"); |
213 | 213 | AssertLogger.IsNotNull(tokenData["token"], "Token should have access token"); |
@@ -236,10 +236,10 @@ public async Task Test004_Should_Fetch_Delivery_Token_Async() |
236 | 236 |
|
237 | 237 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Async fetch delivery token failed", "AsyncFetchSuccess"); |
238 | 238 |
|
239 | | - var responseObject = response.OpenJObjectResponse(); |
| 239 | + var responseObject = response.OpenJsonObjectResponse(); |
240 | 240 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
241 | 241 |
|
242 | | - var tokenData = responseObject["token"] as JObject; |
| 242 | + var tokenData = responseObject["token"] as JsonObject; |
243 | 243 | AssertLogger.AreEqual(_deliveryTokenUid, tokenData["uid"]?.ToString(), "Token UID should match", "TokenUid"); |
244 | 244 | AssertLogger.IsNotNull(tokenData["token"], "Token should have access token"); |
245 | 245 | } |
@@ -293,10 +293,10 @@ public async Task Test005_Should_Update_Delivery_Token() |
293 | 293 |
|
294 | 294 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Update delivery token failed", "UpdateSuccess"); |
295 | 295 |
|
296 | | - var responseObject = response.OpenJObjectResponse(); |
| 296 | + var responseObject = response.OpenJsonObjectResponse(); |
297 | 297 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
298 | 298 |
|
299 | | - var tokenData = responseObject["token"] as JObject; |
| 299 | + var tokenData = responseObject["token"] as JsonObject; |
300 | 300 | AssertLogger.AreEqual(_deliveryTokenUid, tokenData["uid"]?.ToString(), "Token UID should match", "TokenUid"); |
301 | 301 | AssertLogger.AreEqual(updateModel.Name, tokenData["name"]?.ToString(), "Updated token name should match", "UpdatedTokenName"); |
302 | 302 | AssertLogger.AreEqual(updateModel.Description, tokenData["description"]?.ToString(), "Updated token description should match", "UpdatedTokenDescription"); |
@@ -351,10 +351,10 @@ public async Task Test006_Should_Update_Delivery_Token_Async() |
351 | 351 |
|
352 | 352 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Async update delivery token failed", "AsyncUpdateSuccess"); |
353 | 353 |
|
354 | | - var responseObject = response.OpenJObjectResponse(); |
| 354 | + var responseObject = response.OpenJsonObjectResponse(); |
355 | 355 | AssertLogger.IsNotNull(responseObject["token"], "Response should contain token object"); |
356 | 356 |
|
357 | | - var tokenData = responseObject["token"] as JObject; |
| 357 | + var tokenData = responseObject["token"] as JsonObject; |
358 | 358 | AssertLogger.AreEqual(_deliveryTokenUid, tokenData["uid"]?.ToString(), "Token UID should match", "TokenUid"); |
359 | 359 | AssertLogger.AreEqual(updateModel.Name, tokenData["name"]?.ToString(), "Updated token name should match", "UpdatedTokenName"); |
360 | 360 |
|
@@ -382,10 +382,10 @@ public async Task Test007_Should_Query_All_Delivery_Tokens() |
382 | 382 |
|
383 | 383 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Query delivery tokens failed", "QuerySuccess"); |
384 | 384 |
|
385 | | - var responseObject = response.OpenJObjectResponse(); |
| 385 | + var responseObject = response.OpenJsonObjectResponse(); |
386 | 386 | AssertLogger.IsNotNull(responseObject["tokens"], "Response should contain tokens array"); |
387 | 387 |
|
388 | | - var tokens = responseObject["tokens"] as JArray; |
| 388 | + var tokens = responseObject["tokens"] as JsonArray; |
389 | 389 | AssertLogger.IsTrue(tokens.Count > 0, "Should have at least one delivery token", "TokensCountGreaterThanZero"); |
390 | 390 |
|
391 | 391 | bool foundTestToken = false; |
@@ -428,10 +428,10 @@ public async Task Test008_Should_Query_Delivery_Tokens_With_Parameters() |
428 | 428 |
|
429 | 429 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Query delivery tokens with parameters failed", "QueryWithParamsSuccess"); |
430 | 430 |
|
431 | | - var responseObject = response.OpenJObjectResponse(); |
| 431 | + var responseObject = response.OpenJsonObjectResponse(); |
432 | 432 | AssertLogger.IsNotNull(responseObject["tokens"], "Response should contain tokens array"); |
433 | 433 |
|
434 | | - var tokens = responseObject["tokens"] as JArray; |
| 434 | + var tokens = responseObject["tokens"] as JsonArray; |
435 | 435 | AssertLogger.IsTrue(tokens.Count <= 5, "Should respect limit parameter", "RespectLimitParam"); |
436 | 436 |
|
437 | 437 | } |
@@ -483,14 +483,14 @@ public async Task Test009_Should_Create_Token_With_Multiple_Environments() |
483 | 483 |
|
484 | 484 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Create multi-environment delivery token failed", "MultiEnvCreateSuccess"); |
485 | 485 |
|
486 | | - var responseObject = response.OpenJObjectResponse(); |
487 | | - var tokenData = responseObject["token"] as JObject; |
| 486 | + var responseObject = response.OpenJsonObjectResponse(); |
| 487 | + var tokenData = responseObject["token"] as JsonObject; |
488 | 488 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
489 | 489 |
|
490 | 490 | string multiEnvTokenUid = tokenData["uid"]?.ToString(); |
491 | 491 | TestOutputLogger.LogContext("MultiEnvTokenUid", multiEnvTokenUid ?? ""); |
492 | 492 |
|
493 | | - var scope = tokenData["scope"] as JArray; |
| 493 | + var scope = tokenData["scope"] as JsonArray; |
494 | 494 | AssertLogger.IsNotNull(scope, "Token should have scope"); |
495 | 495 | AssertLogger.IsTrue(scope.Count > 0, "Token should have at least one scope", "ScopeCount"); |
496 | 496 |
|
@@ -546,15 +546,15 @@ public async Task Test011_Should_Create_Token_With_Complex_Scope() |
546 | 546 |
|
547 | 547 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Create complex scope delivery token failed", "ComplexScopeCreateSuccess"); |
548 | 548 |
|
549 | | - var responseObject = response.OpenJObjectResponse(); |
550 | | - var tokenData = responseObject["token"] as JObject; |
| 549 | + var responseObject = response.OpenJsonObjectResponse(); |
| 550 | + var tokenData = responseObject["token"] as JsonObject; |
551 | 551 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
552 | 552 |
|
553 | 553 | string complexScopeTokenUid = tokenData["uid"]?.ToString(); |
554 | 554 | TestOutputLogger.LogContext("ComplexScopeTokenUid", complexScopeTokenUid ?? ""); |
555 | 555 |
|
556 | 556 | // Verify multiple scopes |
557 | | - var scope = tokenData["scope"] as JArray; |
| 557 | + var scope = tokenData["scope"] as JsonArray; |
558 | 558 | AssertLogger.IsNotNull(scope, "Token should have scope"); |
559 | 559 | AssertLogger.IsTrue(scope.Count >= 2, "Token should have multiple scopes", "ScopeCountMultiple"); |
560 | 560 |
|
@@ -610,13 +610,13 @@ public async Task Test012_Should_Create_Token_With_UI_Structure() |
610 | 610 |
|
611 | 611 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Create UI structure delivery token failed", "UIStructureCreateSuccess"); |
612 | 612 |
|
613 | | - var responseObject = response.OpenJObjectResponse(); |
614 | | - var tokenData = responseObject["token"] as JObject; |
| 613 | + var responseObject = response.OpenJsonObjectResponse(); |
| 614 | + var tokenData = responseObject["token"] as JsonObject; |
615 | 615 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
616 | 616 | AssertLogger.AreEqual(uiStructureTokenModel.Name, tokenData["name"]?.ToString(), "Token name should match", "UITokenName"); |
617 | 617 |
|
618 | 618 | // Verify the scope structure matches UI format |
619 | | - var scope = tokenData["scope"] as JArray; |
| 619 | + var scope = tokenData["scope"] as JsonArray; |
620 | 620 | AssertLogger.IsNotNull(scope, "Token should have scope"); |
621 | 621 | AssertLogger.IsTrue(scope.Count == 2, "Token should have 2 scope modules (environment and branch)", "UIScopeCount"); |
622 | 622 |
|
@@ -654,10 +654,10 @@ public async Task Test015_Should_Query_Delivery_Tokens_Async() |
654 | 654 |
|
655 | 655 | AssertLogger.IsTrue(response.IsSuccessStatusCode, $"Async query delivery tokens failed: {response.OpenResponse()}", "AsyncQuerySuccess"); |
656 | 656 |
|
657 | | - var responseObject = response.OpenJObjectResponse(); |
| 657 | + var responseObject = response.OpenJsonObjectResponse(); |
658 | 658 | AssertLogger.IsNotNull(responseObject["tokens"], "Response should contain tokens array"); |
659 | 659 |
|
660 | | - var tokens = responseObject["tokens"] as JArray; |
| 660 | + var tokens = responseObject["tokens"] as JsonArray; |
661 | 661 | AssertLogger.IsTrue(tokens.Count > 0, "Should have at least one delivery token", "AsyncTokensCount"); |
662 | 662 |
|
663 | 663 | bool foundTestToken = false; |
@@ -717,8 +717,8 @@ public async Task Test016_Should_Create_Token_With_Empty_Description() |
717 | 717 |
|
718 | 718 | AssertLogger.IsTrue(response.IsSuccessStatusCode, $"Create token with empty description failed: {response.OpenResponse()}", "EmptyDescCreateSuccess"); |
719 | 719 |
|
720 | | - var responseObject = response.OpenJObjectResponse(); |
721 | | - var tokenData = responseObject["token"] as JObject; |
| 720 | + var responseObject = response.OpenJsonObjectResponse(); |
| 721 | + var tokenData = responseObject["token"] as JsonObject; |
722 | 722 | AssertLogger.IsNotNull(tokenData["uid"], "Token should have UID"); |
723 | 723 | AssertLogger.AreEqual(emptyDescTokenModel.Name, tokenData["name"]?.ToString(), "Token name should match", "EmptyDescTokenName"); |
724 | 724 |
|
@@ -947,8 +947,8 @@ public void Test023_Should_Accept_Create_With_Whitespace_Only_Name() |
947 | 947 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Should accept token with whitespace name"); |
948 | 948 |
|
949 | 949 | // Get token UID for cleanup |
950 | | - var responseObject = response.OpenJObjectResponse(); |
951 | | - var tokenData = responseObject["token"] as JObject; |
| 950 | + var responseObject = response.OpenJsonObjectResponse(); |
| 951 | + var tokenData = responseObject["token"] as JsonObject; |
952 | 952 | string createdTokenUid = tokenData["uid"]?.ToString(); |
953 | 953 |
|
954 | 954 | // Verify name contains whitespace |
@@ -999,8 +999,8 @@ public void Test025_Should_Accept_Create_With_Invalid_Name_Characters() |
999 | 999 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Should accept token with special characters"); |
1000 | 1000 |
|
1001 | 1001 | // Get token UID for cleanup |
1002 | | - var responseObject = response.OpenJObjectResponse(); |
1003 | | - var tokenData = responseObject["token"] as JObject; |
| 1002 | + var responseObject = response.OpenJsonObjectResponse(); |
| 1003 | + var tokenData = responseObject["token"] as JsonObject; |
1004 | 1004 | string createdTokenUid = tokenData["uid"]?.ToString(); |
1005 | 1005 |
|
1006 | 1006 | // Verify name contains special characters |
@@ -1690,7 +1690,7 @@ public void Test070_Should_Accept_Query_With_Negative_Limit() |
1690 | 1690 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Should accept query with negative limit"); |
1691 | 1691 |
|
1692 | 1692 | // Server should return results even with negative limit |
1693 | | - var tokens = response.OpenJObjectResponse()["tokens"]; |
| 1693 | + var tokens = response.OpenJsonObjectResponse()["tokens"]; |
1694 | 1694 | AssertLogger.IsNotNull(tokens, "Should return tokens array"); |
1695 | 1695 | } |
1696 | 1696 | catch (ArgumentException ex) |
@@ -1735,7 +1735,7 @@ public void Test072_Should_Accept_Query_With_Excessive_Limit() |
1735 | 1735 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Should accept query with large limit"); |
1736 | 1736 |
|
1737 | 1737 | // Server should return results even with excessive limit |
1738 | | - var tokens = response.OpenJObjectResponse()["tokens"]; |
| 1738 | + var tokens = response.OpenJsonObjectResponse()["tokens"]; |
1739 | 1739 | AssertLogger.IsNotNull(tokens, "Should return tokens array"); |
1740 | 1740 | } |
1741 | 1741 | catch (ArgumentException ex) |
@@ -1789,7 +1789,7 @@ public async Task Test074_Should_Accept_Query_With_Invalid_Parameters_Async() |
1789 | 1789 | AssertLogger.IsTrue(response.IsSuccessStatusCode, "Should accept async query with negative limit"); |
1790 | 1790 |
|
1791 | 1791 | // Server should return results even with negative limit |
1792 | | - var tokens = response.OpenJObjectResponse()["tokens"]; |
| 1792 | + var tokens = response.OpenJsonObjectResponse()["tokens"]; |
1793 | 1793 | AssertLogger.IsNotNull(tokens, "Should return tokens array"); |
1794 | 1794 | } |
1795 | 1795 | catch (ArgumentException ex) |
@@ -1912,8 +1912,8 @@ public async Task Test082_Should_Handle_Permission_Scenarios_Async() |
1912 | 1912 | if (createResponse.IsSuccessStatusCode) |
1913 | 1913 | { |
1914 | 1914 | // Clean up the test token if created |
1915 | | - var responseObject = createResponse.OpenJObjectResponse(); |
1916 | | - var tokenData = responseObject["token"] as JObject; |
| 1915 | + var responseObject = createResponse.OpenJsonObjectResponse(); |
| 1916 | + var tokenData = responseObject["token"] as JsonObject; |
1917 | 1917 | string tokenUid = tokenData["uid"]?.ToString(); |
1918 | 1918 |
|
1919 | 1919 | if (!string.IsNullOrEmpty(tokenUid)) |
@@ -2004,7 +2004,7 @@ public async Task Test091_Should_Handle_Large_Response_Data() |
2004 | 2004 |
|
2005 | 2005 | if (response.IsSuccessStatusCode) |
2006 | 2006 | { |
2007 | | - var responseObject = response.OpenJObjectResponse(); |
| 2007 | + var responseObject = response.OpenJsonObjectResponse(); |
2008 | 2008 | AssertLogger.IsNotNull(responseObject, "Response should be parseable even if large"); |
2009 | 2009 | } |
2010 | 2010 | } |
@@ -2176,7 +2176,7 @@ public async Task Cleanup() |
2176 | 2176 | var tokensResponse = _stack.DeliveryToken().Query().Find(); |
2177 | 2177 | if (tokensResponse.IsSuccessStatusCode) |
2178 | 2178 | { |
2179 | | - var tokens = tokensResponse.OpenJObjectResponse()["tokens"] as JArray; |
| 2179 | + var tokens = tokensResponse.OpenJsonObjectResponse()["tokens"] as JsonArray; |
2180 | 2180 | if (tokens?.Count > 0) |
2181 | 2181 | { |
2182 | 2182 | foreach (var token in tokens) |
@@ -2229,7 +2229,7 @@ private async Task CleanupTestResources() |
2229 | 2229 | var tokensResponse = _stack.DeliveryToken().Query().Find(); |
2230 | 2230 | if (tokensResponse.IsSuccessStatusCode) |
2231 | 2231 | { |
2232 | | - var tokens = tokensResponse.OpenJObjectResponse()["tokens"] as JArray; |
| 2232 | + var tokens = tokensResponse.OpenJsonObjectResponse()["tokens"] as JsonArray; |
2233 | 2233 | if (tokens?.Count > 0) |
2234 | 2234 | { |
2235 | 2235 | foreach (var token in tokens) |
@@ -2265,7 +2265,7 @@ private async Task CleanupTestResources() |
2265 | 2265 | var environmentsResponse = _stack.Environment().Query().Find(); |
2266 | 2266 | if (environmentsResponse.IsSuccessStatusCode) |
2267 | 2267 | { |
2268 | | - var environments = environmentsResponse.OpenJObjectResponse()["environments"] as JArray; |
| 2268 | + var environments = environmentsResponse.OpenJsonObjectResponse()["environments"] as JsonArray; |
2269 | 2269 | if (environments?.Count > 0) |
2270 | 2270 | { |
2271 | 2271 | foreach (var env in environments) |
@@ -2592,8 +2592,8 @@ private async Task<string> CreateTemporaryTokenForTesting(string baseName) |
2592 | 2592 |
|
2593 | 2593 | if (response.IsSuccessStatusCode) |
2594 | 2594 | { |
2595 | | - var responseObject = response.OpenJObjectResponse(); |
2596 | | - var tokenData = responseObject["token"] as JObject; |
| 2595 | + var responseObject = response.OpenJsonObjectResponse(); |
| 2596 | + var tokenData = responseObject["token"] as JsonObject; |
2597 | 2597 | return tokenData["uid"]?.ToString(); |
2598 | 2598 | } |
2599 | 2599 | } |
@@ -2630,7 +2630,7 @@ private async Task CreateTestEnvironment(string environmentUid = null) |
2630 | 2630 | response = _stack.Environment().Query().Find(); |
2631 | 2631 | if (response.IsSuccessStatusCode) |
2632 | 2632 | { |
2633 | | - var environments = response.OpenJObjectResponse()["environments"] as JArray; |
| 2633 | + var environments = response.OpenJsonObjectResponse()["environments"] as JsonArray; |
2634 | 2634 | if (environments?.Count > 0) |
2635 | 2635 | { |
2636 | 2636 | Console.WriteLine($"Test environment {envUid} already exists"); |
@@ -2664,7 +2664,7 @@ private async Task CleanupTestEnvironment(string environmentUid = null) |
2664 | 2664 |
|
2665 | 2665 | if (queryResponse.IsSuccessStatusCode) |
2666 | 2666 | { |
2667 | | - var environments = queryResponse.OpenJObjectResponse()["environments"] as JArray; |
| 2667 | + var environments = queryResponse.OpenJsonObjectResponse()["environments"] as JsonArray; |
2668 | 2668 | if (environments?.Count > 0) |
2669 | 2669 | { |
2670 | 2670 | // Find the environment with matching name |
|
0 commit comments