Skip to content

Commit 92665a3

Browse files
committed
Merge branch 'enhc/beta' into enh/DX-8558-tests-migration
2 parents be6774e + 318c6d7 commit 92665a3

24 files changed

Lines changed: 1041 additions & 321 deletions

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
# Changelog
22

33
## [v1.0.0-beta.1](https://github.com/contentstack/contentstack-management-dotnet/tree/v1.0.0-beta.1)
4+
- **Feat**
5+
- **Branch support**
6+
- Added `Branch` model with `Create`, `CreateAsync`, `Fetch`, `FetchAsync`, `Delete`, `DeleteAsync`, and `Query` operations
7+
- Added `BranchModel` and `BranchAliasModel` with System.Text.Json serialization
8+
- `Stack.Branch(uid?)` accessor follows the same pattern as other stack resources
9+
- Added unit tests (`BranchTest`) covering resource path, SDK guard conditions, and query parameter construction
10+
- Added integration tests (`Contentstack005_BranchTest`) covering CRUD lifecycle, query with pagination, SDK validation errors, and API error scenarios
11+
- **Webhook migration to System.Text.Json**
12+
- Migrated `WebhookModel` to use `System.Text.Json` attributes
13+
- **Workflow migration to System.Text.Json**
14+
- Migrated `WorkflowModel` to use `System.Text.Json` attributes
415
- **Breaking Change**
516
- **System.Text.Json Migration (Beta)**
617
- Migrated core serialization from Newtonsoft.Json to System.Text.Json

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@
5353

5454
<ItemGroup>
5555
<!-- Exclude out-of-scope integration tests (still use Newtonsoft or depend on excluded SDK types) -->
56-
<!-- Contentstack015 depends on Stack.Workflow() and Stack.Release() which are not yet migrated -->
57-
<!-- <Compile Remove="IntegrationTest\Contentstack015_BulkOperationTest.cs" /> -->
58-
<Compile Remove="IntegrationTest\Contentstack004_ReleaseTest.cs" />
56+
<!-- Contentstack004_ReleaseTest.cs - RE-ENABLED for Release module STJ migration -->
57+
<!-- Contentstack015_BulkOperationTest.cs - RE-ENABLED (Stack.Release() and Stack.Workflow() now active) -->
58+
<!-- Contentstack020_WorkflowTest.cs - RE-ENABLED for Workflow module STJ migration -->
5959
<Compile Remove="IntegrationTest\Contentstack012b_ContentTypeExpandedIntegrationTest.cs" />
6060

6161
<Compile Remove="IntegrationTest\Contentstack019_RoleTest.cs" />

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

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using Contentstack.Management.Core.Tests.Model;
77
using Contentstack.Management.Core.Queryable;
88
using Microsoft.VisualStudio.TestTools.UnitTesting;
9-
using Newtonsoft.Json.Linq;
9+
using System.Text.Json.Nodes;
1010
using Contentstack.Management.Core.Exceptions;
1111

1212
namespace Contentstack.Management.Core.Tests.IntegrationTest
@@ -168,7 +168,7 @@ private string CreateTestRelease()
168168
};
169169

170170
ContentstackResponse contentstackResponse = _stack.Release().Create(releaseModel);
171-
var response = contentstackResponse.OpenJObjectResponse();
171+
var response = contentstackResponse.OpenJsonObjectResponse();
172172

173173
if (!contentstackResponse.IsSuccessStatusCode || response?["release"] == null)
174174
{
@@ -195,7 +195,7 @@ public void Test001_Should_Create_Release()
195195
Assert.IsNotNull(releaseUid);
196196

197197
ContentstackResponse contentstackResponse = _stack.Release(releaseUid).Fetch();
198-
var response = contentstackResponse.OpenJObjectResponse();
198+
var response = contentstackResponse.OpenJsonObjectResponse();
199199

200200
Assert.IsNotNull(response);
201201
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -239,7 +239,7 @@ private async Task<string> CreateTestReleaseAsync()
239239
};
240240

241241
ContentstackResponse contentstackResponse = await _stack.Release().CreateAsync(releaseModel);
242-
var response = contentstackResponse.OpenJObjectResponse();
242+
var response = contentstackResponse.OpenJsonObjectResponse();
243243

244244
if (!contentstackResponse.IsSuccessStatusCode || response?["release"] == null)
245245
{
@@ -274,7 +274,7 @@ private List<string> CreateSixNumberedReleases()
274274
};
275275

276276
ContentstackResponse contentstackResponse = _stack.Release().Create(releaseModel);
277-
var response = contentstackResponse.OpenJObjectResponse();
277+
var response = contentstackResponse.OpenJsonObjectResponse();
278278

279279
if (!contentstackResponse.IsSuccessStatusCode || response?["release"] == null)
280280
{
@@ -322,7 +322,7 @@ private async Task<List<string>> CreateSixNumberedReleasesAsync()
322322
};
323323

324324
ContentstackResponse contentstackResponse = await _stack.Release().CreateAsync(releaseModel);
325-
var response = contentstackResponse.OpenJObjectResponse();
325+
var response = contentstackResponse.OpenJsonObjectResponse();
326326

327327
if (!contentstackResponse.IsSuccessStatusCode || response?["release"] == null)
328328
{
@@ -402,7 +402,7 @@ public async Task Test002_Should_Create_Release_Async()
402402
Assert.IsNotNull(releaseUid);
403403

404404
ContentstackResponse contentstackResponse = await _stack.Release(releaseUid).FetchAsync();
405-
var response = contentstackResponse.OpenJObjectResponse();
405+
var response = contentstackResponse.OpenJsonObjectResponse();
406406

407407
Assert.IsNotNull(response);
408408
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -440,13 +440,13 @@ public void Test003_Should_Query_All_Releases()
440440
releaseUids = CreateSixNumberedReleases();
441441

442442
ContentstackResponse contentstackResponse = _stack.Release().Query().Find();
443-
var response = contentstackResponse.OpenJObjectResponse();
443+
var response = contentstackResponse.OpenJsonObjectResponse();
444444

445445
Assert.IsNotNull(response);
446446
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
447447
Assert.IsNotNull(response["releases"]);
448448

449-
var releases = response["releases"] as JArray;
449+
var releases = response["releases"] as JsonArray;
450450
Assert.IsNotNull(releases);
451451

452452
Assert.IsTrue(releases.Count >= 6, $"Expected at least 6 releases, but found {releases.Count}");
@@ -479,13 +479,13 @@ public async Task Test004_Should_Query_All_Releases_Async()
479479
releaseUids = await CreateSixNumberedReleasesAsync();
480480

481481
ContentstackResponse contentstackResponse = await _stack.Release().Query().FindAsync();
482-
var response = contentstackResponse.OpenJObjectResponse();
482+
var response = contentstackResponse.OpenJsonObjectResponse();
483483

484484
Assert.IsNotNull(response);
485485
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
486486
Assert.IsNotNull(response["releases"]);
487487

488-
var releases = response["releases"] as JArray;
488+
var releases = response["releases"] as JsonArray;
489489
Assert.IsNotNull(releases);
490490

491491
Assert.IsTrue(releases.Count >= 6, $"Expected at least 6 releases, but found {releases.Count}");
@@ -519,7 +519,7 @@ public void Test005_Should_Fetch_Release()
519519

520520
string releaseToFetch = releaseUids[2];
521521
ContentstackResponse contentstackResponse = _stack.Release(releaseToFetch).Fetch();
522-
var response = contentstackResponse.OpenJObjectResponse();
522+
var response = contentstackResponse.OpenJsonObjectResponse();
523523

524524
Assert.IsNotNull(response);
525525
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -549,7 +549,7 @@ public async Task Test006_Should_Fetch_Release_Async()
549549

550550
string releaseToFetch = releaseUids[4];
551551
ContentstackResponse contentstackResponse = await _stack.Release(releaseToFetch).FetchAsync();
552-
var response = contentstackResponse.OpenJObjectResponse();
552+
var response = contentstackResponse.OpenJsonObjectResponse();
553553

554554
Assert.IsNotNull(response);
555555
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -586,7 +586,7 @@ public void Test007_Should_Update_Release()
586586
};
587587

588588
ContentstackResponse contentstackResponse = _stack.Release(releaseUid).Update(updateModel);
589-
var response = contentstackResponse.OpenJObjectResponse();
589+
var response = contentstackResponse.OpenJsonObjectResponse();
590590

591591
Assert.IsNotNull(response);
592592
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -631,7 +631,7 @@ public async Task Test008_Should_Update_Release_Async()
631631
};
632632

633633
ContentstackResponse contentstackResponse = await _stack.Release(releaseUid).UpdateAsync(updateModel);
634-
var response = contentstackResponse.OpenJObjectResponse();
634+
var response = contentstackResponse.OpenJsonObjectResponse();
635635

636636
Assert.IsNotNull(response);
637637
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -672,7 +672,7 @@ public void Test009_Should_Clone_Release()
672672
string cloneDescription = _testReleaseDescription + " (Cloned)";
673673

674674
ContentstackResponse contentstackResponse = _stack.Release(originalReleaseUid).Clone(cloneName, cloneDescription);
675-
var response = contentstackResponse.OpenJObjectResponse();
675+
var response = contentstackResponse.OpenJsonObjectResponse();
676676

677677
Assert.IsNotNull(response);
678678
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -726,7 +726,7 @@ public async Task Test010_Should_Clone_Release_Async()
726726
string cloneDescription = _testReleaseDescription + " (Cloned Async)";
727727

728728
ContentstackResponse contentstackResponse = await _stack.Release(originalReleaseUid).CloneAsync(cloneName, cloneDescription);
729-
var response = contentstackResponse.OpenJObjectResponse();
729+
var response = contentstackResponse.OpenJsonObjectResponse();
730730

731731
Assert.IsNotNull(response);
732732
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -778,7 +778,7 @@ public void Test011_Should_Query_Release_With_Parameters()
778778
parameters.Add("limit", "5");
779779

780780
ContentstackResponse contentstackResponse = _stack.Release().Query().Limit(5).Find();
781-
var response = contentstackResponse.OpenJObjectResponse();
781+
var response = contentstackResponse.OpenJsonObjectResponse();
782782

783783
Assert.IsNotNull(response);
784784
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -803,7 +803,7 @@ public async Task Test012_Should_Query_Release_With_Parameters_Async()
803803
parameters.Add("limit", "5");
804804

805805
ContentstackResponse contentstackResponse = await _stack.Release().Query().Limit(5).FindAsync();
806-
var response = contentstackResponse.OpenJObjectResponse();
806+
var response = contentstackResponse.OpenJsonObjectResponse();
807807

808808
Assert.IsNotNull(response);
809809
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -834,7 +834,7 @@ public void Test013_Should_Create_Release_With_ParameterCollection()
834834
parameters.Add("include_count", "true");
835835

836836
ContentstackResponse contentstackResponse = _stack.Release().Create(releaseModel, parameters);
837-
var response = contentstackResponse.OpenJObjectResponse();
837+
var response = contentstackResponse.OpenJsonObjectResponse();
838838

839839
Assert.IsNotNull(response);
840840
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -869,7 +869,7 @@ public async Task Test014_Should_Create_Release_With_ParameterCollection_Async()
869869
parameters.Add("include_count", "true");
870870

871871
ContentstackResponse contentstackResponse = await _stack.Release().CreateAsync(releaseModel, parameters);
872-
var response = contentstackResponse.OpenJObjectResponse();
872+
var response = contentstackResponse.OpenJsonObjectResponse();
873873

874874
Assert.IsNotNull(response);
875875
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -896,7 +896,7 @@ public void Test015_Should_Get_Release_Items()
896896
releaseUid = CreateTestRelease();
897897

898898
ContentstackResponse contentstackResponse = _stack.Release(releaseUid).Item().GetAll();
899-
var response = contentstackResponse.OpenJObjectResponse();
899+
var response = contentstackResponse.OpenJsonObjectResponse();
900900

901901
Assert.IsNotNull(response);
902902
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -930,7 +930,7 @@ public async Task Test016_Should_Get_Release_Items_Async()
930930
releaseUid = await CreateTestReleaseAsync();
931931

932932
ContentstackResponse contentstackResponse = await _stack.Release(releaseUid).Item().GetAllAsync();
933-
var response = contentstackResponse.OpenJObjectResponse();
933+
var response = contentstackResponse.OpenJsonObjectResponse();
934934

935935
Assert.IsNotNull(response);
936936
Assert.IsTrue(contentstackResponse.IsSuccessStatusCode);
@@ -997,7 +997,7 @@ public void Test019_Should_Delete_Release()
997997
};
998998

999999
ContentstackResponse createResponse = _stack.Release().Create(releaseModel);
1000-
var createResponseJson = createResponse.OpenJObjectResponse();
1000+
var createResponseJson = createResponse.OpenJsonObjectResponse();
10011001
string releaseToDeleteUid = createResponseJson["release"]["uid"].ToString();
10021002

10031003
ContentstackResponse contentstackResponse = _stack.Release(releaseToDeleteUid).Delete();
@@ -1026,7 +1026,7 @@ public async Task Test020_Should_Delete_Release_Async()
10261026
};
10271027

10281028
ContentstackResponse createResponse = await _stack.Release().CreateAsync(releaseModel);
1029-
var createResponseJson = createResponse.OpenJObjectResponse();
1029+
var createResponseJson = createResponse.OpenJsonObjectResponse();
10301030
string releaseToDeleteUid = createResponseJson["release"]["uid"].ToString();
10311031

10321032
ContentstackResponse contentstackResponse = await _stack.Release(releaseToDeleteUid).DeleteAsync();
@@ -1059,7 +1059,7 @@ public void Test021_Should_Delete_Release_Without_Content_Type_Header()
10591059
};
10601060

10611061
ContentstackResponse createResponse = _stack.Release().Create(releaseModel);
1062-
var createResponseJson = createResponse.OpenJObjectResponse();
1062+
var createResponseJson = createResponse.OpenJsonObjectResponse();
10631063
Assert.IsTrue(createResponse.IsSuccessStatusCode, "Create release must succeed.");
10641064
string releaseToDeleteUid = createResponseJson["release"]["uid"].ToString();
10651065

@@ -1103,7 +1103,7 @@ public async Task Test022_Should_Delete_Release_Async_Without_Content_Type_Heade
11031103
};
11041104

11051105
ContentstackResponse createResponse = await _stack.Release().CreateAsync(releaseModel);
1106-
var createResponseJson = createResponse.OpenJObjectResponse();
1106+
var createResponseJson = createResponse.OpenJsonObjectResponse();
11071107
Assert.IsTrue(createResponse.IsSuccessStatusCode, "Create release must succeed.");
11081108
string releaseToDeleteUid = createResponseJson["release"]["uid"].ToString();
11091109

0 commit comments

Comments
 (0)