Skip to content

Commit 817b3a7

Browse files
committed
Added Unit test case for bulk operation services
1 parent 6207b01 commit 817b3a7

12 files changed

+2591
-43
lines changed
Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
using System;
2+
using System.Text;
3+
using AutoFixture;
4+
using AutoFixture.AutoMoq;
5+
using Contentstack.Management.Core.Models;
6+
using Contentstack.Management.Core.Services.Stack.BulkOperation;
7+
using Contentstack.Management.Core.Services;
8+
using Microsoft.VisualStudio.TestTools.UnitTesting;
9+
using Newtonsoft.Json;
10+
11+
namespace Contentstack.Management.Core.Unit.Tests.Core.Services.Stack
12+
{
13+
[TestClass]
14+
public class BulkAddItemsServiceTest
15+
{
16+
private JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings());
17+
private readonly IFixture _fixture = new Fixture()
18+
.Customize(new AutoMoqCustomization());
19+
20+
[TestMethod]
21+
public void Should_Throw_On_Null_Serializer()
22+
{
23+
var data = new BulkAddItemsData();
24+
Assert.ThrowsException<ArgumentNullException>(() => new BulkAddItemsService(
25+
null,
26+
new Management.Core.Models.Stack(null),
27+
data));
28+
}
29+
30+
[TestMethod]
31+
public void Should_Throw_On_Null_Data()
32+
{
33+
Assert.ThrowsException<ArgumentNullException>(() => new BulkAddItemsService(
34+
serializer,
35+
new Management.Core.Models.Stack(null),
36+
null));
37+
}
38+
39+
[TestMethod]
40+
public void Should_Create_Service_With_Valid_Parameters()
41+
{
42+
var data = new BulkAddItemsData();
43+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
44+
45+
Assert.IsNotNull(service);
46+
Assert.AreEqual("POST", service.HttpMethod);
47+
Assert.AreEqual("/bulk/release/items", service.ResourcePath);
48+
}
49+
50+
[TestMethod]
51+
public void Should_Set_Bulk_Version_Header_When_Provided()
52+
{
53+
var data = new BulkAddItemsData();
54+
var bulkVersion = "1.0";
55+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data, bulkVersion);
56+
57+
Assert.IsNotNull(service);
58+
Assert.IsTrue(service.Headers.ContainsKey("bulk_version"));
59+
Assert.AreEqual(bulkVersion, service.Headers["bulk_version"]);
60+
}
61+
62+
[TestMethod]
63+
public void Should_Not_Set_Bulk_Version_Header_When_Not_Provided()
64+
{
65+
var data = new BulkAddItemsData();
66+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
67+
68+
Assert.IsNotNull(service);
69+
Assert.IsFalse(service.Headers.ContainsKey("bulk_version"));
70+
}
71+
72+
[TestMethod]
73+
public void Should_Set_Bulk_Version_Header_With_Empty_String()
74+
{
75+
var data = new BulkAddItemsData();
76+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data, "");
77+
78+
Assert.IsNotNull(service);
79+
Assert.IsFalse(service.Headers.ContainsKey("bulk_version"));
80+
}
81+
82+
83+
84+
[TestMethod]
85+
public void Should_Set_Bulk_Version_Header_With_Complex_Version()
86+
{
87+
var data = new BulkAddItemsData();
88+
var bulkVersion = "2.1.3-beta";
89+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data, bulkVersion);
90+
91+
Assert.IsNotNull(service);
92+
Assert.IsTrue(service.Headers.ContainsKey("bulk_version"));
93+
Assert.AreEqual(bulkVersion, service.Headers["bulk_version"]);
94+
}
95+
96+
[TestMethod]
97+
public void Should_Create_Content_Body_From_Data()
98+
{
99+
var data = new BulkAddItemsData();
100+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
101+
service.ContentBody();
102+
103+
Assert.IsNotNull(service.ByteContent);
104+
var content = Encoding.UTF8.GetString(service.ByteContent);
105+
Assert.IsTrue(content.Contains("{}")); // Empty JSON object for empty data
106+
}
107+
108+
[TestMethod]
109+
public void Should_Create_Service_With_Stack_Having_API_Key()
110+
{
111+
var data = new BulkAddItemsData();
112+
var apiKey = "test-api-key";
113+
var stack = new Management.Core.Models.Stack(null, apiKey);
114+
var service = new BulkAddItemsService(serializer, stack, data);
115+
116+
Assert.IsNotNull(service);
117+
Assert.AreEqual("POST", service.HttpMethod);
118+
Assert.AreEqual("/bulk/release/items", service.ResourcePath);
119+
}
120+
121+
[TestMethod]
122+
public void Should_Create_Service_With_Stack_Having_Management_Token()
123+
{
124+
var data = new BulkAddItemsData();
125+
var managementToken = "test-management-token";
126+
var stack = new Management.Core.Models.Stack(null, null, managementToken);
127+
var service = new BulkAddItemsService(serializer, stack, data);
128+
129+
Assert.IsNotNull(service);
130+
Assert.AreEqual("POST", service.HttpMethod);
131+
Assert.AreEqual("/bulk/release/items", service.ResourcePath);
132+
}
133+
134+
[TestMethod]
135+
public void Should_Create_Service_With_Stack_Having_Branch_Uid()
136+
{
137+
var data = new BulkAddItemsData();
138+
var branchUid = "test-branch-uid";
139+
var stack = new Management.Core.Models.Stack(null, null, null, branchUid);
140+
var service = new BulkAddItemsService(serializer, stack, data);
141+
142+
Assert.IsNotNull(service);
143+
Assert.AreEqual("POST", service.HttpMethod);
144+
Assert.AreEqual("/bulk/release/items", service.ResourcePath);
145+
}
146+
147+
[TestMethod]
148+
public void Should_Create_Service_With_All_Stack_Parameters()
149+
{
150+
var data = new BulkAddItemsData();
151+
var apiKey = "test-api-key";
152+
var managementToken = "test-management-token";
153+
var branchUid = "test-branch-uid";
154+
var stack = new Management.Core.Models.Stack(null, apiKey, managementToken, branchUid);
155+
var service = new BulkAddItemsService(serializer, stack, data);
156+
157+
Assert.IsNotNull(service);
158+
Assert.AreEqual("POST", service.HttpMethod);
159+
Assert.AreEqual("/bulk/release/items", service.ResourcePath);
160+
}
161+
162+
[TestMethod]
163+
public void Should_Handle_Multiple_Service_Instances()
164+
{
165+
var data1 = new BulkAddItemsData();
166+
var data2 = new BulkAddItemsData();
167+
var bulkVersion1 = "1.0";
168+
var bulkVersion2 = "2.0";
169+
170+
var service1 = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data1, bulkVersion1);
171+
var service2 = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data2, bulkVersion2);
172+
173+
Assert.IsNotNull(service1);
174+
Assert.IsNotNull(service2);
175+
Assert.AreEqual(bulkVersion1, service1.Headers["bulk_version"]);
176+
Assert.AreEqual(bulkVersion2, service2.Headers["bulk_version"]);
177+
}
178+
179+
[TestMethod]
180+
public void Should_Verify_Service_Inheritance()
181+
{
182+
var data = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), new BulkAddItemsData());
183+
184+
Assert.IsInstanceOfType(data, typeof(ContentstackService));
185+
}
186+
187+
[TestMethod]
188+
public void Should_Verify_Service_Type()
189+
{
190+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), new BulkAddItemsData());
191+
192+
Assert.AreEqual(typeof(BulkAddItemsService), service.GetType());
193+
}
194+
195+
[TestMethod]
196+
public void Should_Handle_Content_Body_Called_Multiple_Times()
197+
{
198+
var data = new BulkAddItemsData();
199+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
200+
201+
service.ContentBody();
202+
var firstContent = Encoding.UTF8.GetString(service.ByteContent);
203+
204+
service.ContentBody();
205+
var secondContent = Encoding.UTF8.GetString(service.ByteContent);
206+
207+
Assert.AreEqual(firstContent, secondContent);
208+
}
209+
210+
[TestMethod]
211+
public void Should_Verify_Headers_Collection_Is_Initialized()
212+
{
213+
var data = new BulkAddItemsData();
214+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
215+
216+
Assert.IsNotNull(service.Headers);
217+
}
218+
219+
[TestMethod]
220+
public void Should_Verify_Resource_Path_Is_Not_Null()
221+
{
222+
var data = new BulkAddItemsData();
223+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
224+
225+
Assert.IsNotNull(service.ResourcePath);
226+
Assert.IsFalse(string.IsNullOrEmpty(service.ResourcePath));
227+
}
228+
229+
[TestMethod]
230+
public void Should_Verify_Http_Method_Is_Not_Null()
231+
{
232+
var data = new BulkAddItemsData();
233+
var service = new BulkAddItemsService(serializer, new Management.Core.Models.Stack(null), data);
234+
235+
Assert.IsNotNull(service.HttpMethod);
236+
Assert.IsFalse(string.IsNullOrEmpty(service.HttpMethod));
237+
}
238+
}
239+
}

0 commit comments

Comments
 (0)