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