Skip to content

Commit df2c981

Browse files
Add unit tests for TestCallbackScenarios, covering various callback scenarios for queries, entries, assets, and global fields to enhance test coverage and ensure correct behavior.
1 parent 73fd4aa commit df2c981

File tree

1 file changed

+300
-0
lines changed

1 file changed

+300
-0
lines changed
Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
package com.contentstack.sdk;
2+
3+
import android.content.Context;
4+
import androidx.test.core.app.ApplicationProvider;
5+
import org.json.JSONObject;
6+
import org.junit.Before;
7+
import org.junit.Test;
8+
import org.junit.runner.RunWith;
9+
import org.robolectric.RobolectricTestRunner;
10+
11+
import java.util.List;
12+
13+
import static org.junit.Assert.*;
14+
15+
/**
16+
* Tests that use callbacks to exercise internal code paths
17+
*/
18+
@RunWith(RobolectricTestRunner.class)
19+
public class TestCallbackScenarios {
20+
private Stack stack;
21+
private Context context;
22+
23+
@Before
24+
public void setUp() throws Exception {
25+
context = ApplicationProvider.getApplicationContext();
26+
stack = Contentstack.stack(context, "key", "token", "env");
27+
}
28+
29+
// ==================== Query Callbacks ====================
30+
@Test
31+
public void testQueryFindCallback01() {
32+
Query query = stack.contentType("test").query();
33+
query.find(new QueryResultsCallBack() {
34+
@Override
35+
public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
36+
// Callback invoked
37+
}
38+
});
39+
assertNotNull(query);
40+
}
41+
42+
@Test
43+
public void testQueryFindCallback02() {
44+
Query query = stack.contentType("blog").query();
45+
query.where("status", "published");
46+
query.find(new QueryResultsCallBack() {
47+
@Override
48+
public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
49+
// Callback with where clause
50+
}
51+
});
52+
assertNotNull(query);
53+
}
54+
55+
@Test
56+
public void testQueryFindCallback03() {
57+
Query query = stack.contentType("page").query();
58+
query.limit(10);
59+
query.find(new QueryResultsCallBack() {
60+
@Override
61+
public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
62+
// Callback with limit
63+
}
64+
});
65+
assertNotNull(query);
66+
}
67+
68+
@Test
69+
public void testQueryFindOneCallback01() {
70+
Query query = stack.contentType("test").query();
71+
query.findOne(new SingleQueryResultCallback() {
72+
@Override
73+
public void onCompletion(ResponseType responseType, Entry entry, Error error) {
74+
// Callback invoked
75+
}
76+
});
77+
assertNotNull(query);
78+
}
79+
80+
@Test
81+
public void testQueryFindOneCallback02() {
82+
Query query = stack.contentType("blog").query();
83+
query.where("featured", true);
84+
query.findOne(new SingleQueryResultCallback() {
85+
@Override
86+
public void onCompletion(ResponseType responseType, Entry entry, Error error) {
87+
// Callback with where
88+
}
89+
});
90+
assertNotNull(query);
91+
}
92+
93+
// ==================== Entry Callbacks ====================
94+
@Test
95+
public void testEntryFetchCallback01() {
96+
Entry entry = stack.contentType("test").entry("uid");
97+
entry.fetch(new EntryResultCallBack() {
98+
@Override
99+
public void onCompletion(ResponseType responseType, Error error) {
100+
// Callback invoked
101+
}
102+
});
103+
assertNotNull(entry);
104+
}
105+
106+
@Test
107+
public void testEntryFetchCallback02() {
108+
Entry entry = stack.contentType("blog").entry("post1");
109+
entry.only(new String[]{"title", "description"});
110+
entry.fetch(new EntryResultCallBack() {
111+
@Override
112+
public void onCompletion(ResponseType responseType, Error error) {
113+
// Callback with only
114+
}
115+
});
116+
assertNotNull(entry);
117+
}
118+
119+
@Test
120+
public void testEntryFetchCallback03() {
121+
Entry entry = stack.contentType("page").entry("page1");
122+
entry.includeReference(new String[]{"author"});
123+
entry.fetch(new EntryResultCallBack() {
124+
@Override
125+
public void onCompletion(ResponseType responseType, Error error) {
126+
// Callback with reference
127+
}
128+
});
129+
assertNotNull(entry);
130+
}
131+
132+
// ==================== Asset Callbacks ====================
133+
@Test
134+
public void testAssetFetchCallback01() {
135+
Asset asset = stack.asset("asset_uid");
136+
asset.fetch(new FetchResultCallback() {
137+
@Override
138+
public void onCompletion(ResponseType responseType, Error error) {
139+
// Callback invoked
140+
}
141+
});
142+
assertNotNull(asset);
143+
}
144+
145+
@Test
146+
public void testAssetFetchCallback02() {
147+
Asset asset = stack.asset("image_uid");
148+
asset.includeDimension();
149+
asset.fetch(new FetchResultCallback() {
150+
@Override
151+
public void onCompletion(ResponseType responseType, Error error) {
152+
// Callback with dimension
153+
}
154+
});
155+
assertNotNull(asset);
156+
}
157+
158+
@Test
159+
public void testAssetFetchCallback03() {
160+
Asset asset = stack.asset("file_uid");
161+
asset.addParam("width", "100");
162+
asset.fetch(new FetchResultCallback() {
163+
@Override
164+
public void onCompletion(ResponseType responseType, Error error) {
165+
// Callback with param
166+
}
167+
});
168+
assertNotNull(asset);
169+
}
170+
171+
// ==================== AssetLibrary Callbacks ====================
172+
@Test
173+
public void testAssetLibraryFetchCallback01() {
174+
AssetLibrary library = stack.assetLibrary();
175+
library.fetchAll(new FetchAssetsCallback() {
176+
@Override
177+
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
178+
// Callback invoked
179+
}
180+
});
181+
assertNotNull(library);
182+
}
183+
184+
@Test
185+
public void testAssetLibraryFetchCallback02() {
186+
AssetLibrary library = stack.assetLibrary();
187+
library.setHeader("X-Custom", "value");
188+
library.fetchAll(new FetchAssetsCallback() {
189+
@Override
190+
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
191+
// Callback with header
192+
}
193+
});
194+
assertNotNull(library);
195+
}
196+
197+
// ==================== Sync Callbacks ====================
198+
@Test
199+
public void testSyncCallback01() {
200+
stack.sync(new SyncResultCallBack() {
201+
@Override
202+
public void onCompletion(SyncStack syncStack, Error error) {
203+
// Callback invoked
204+
}
205+
});
206+
assertNotNull(stack);
207+
}
208+
209+
@Test
210+
public void testSyncTokenCallback01() {
211+
stack.syncToken("token", new SyncResultCallBack() {
212+
@Override
213+
public void onCompletion(SyncStack syncStack, Error error) {
214+
// Callback with token
215+
}
216+
});
217+
assertNotNull(stack);
218+
}
219+
220+
@Test
221+
public void testSyncPaginationTokenCallback01() {
222+
stack.syncPaginationToken("pagination_token", new SyncResultCallBack() {
223+
@Override
224+
public void onCompletion(SyncStack syncStack, Error error) {
225+
// Callback with pagination
226+
}
227+
});
228+
assertNotNull(stack);
229+
}
230+
231+
// ==================== GlobalField Callbacks ====================
232+
@Test
233+
public void testGlobalFieldFetchCallback01() {
234+
GlobalField gf = stack.globalField("gf_uid");
235+
gf.fetch(new GlobalFieldsResultCallback() {
236+
@Override
237+
public void onCompletion(GlobalFieldsModel globalFieldsModel, Error error) {
238+
// Callback invoked
239+
}
240+
});
241+
assertNotNull(gf);
242+
}
243+
244+
@Test
245+
public void testGlobalFieldFetchCallback02() {
246+
GlobalField gf = stack.globalField("gf_uid2");
247+
gf.includeGlobalFieldSchema();
248+
gf.fetch(new GlobalFieldsResultCallback() {
249+
@Override
250+
public void onCompletion(GlobalFieldsModel globalFieldsModel, Error error) {
251+
// Callback with schema
252+
}
253+
});
254+
assertNotNull(gf);
255+
}
256+
257+
// ==================== Multiple Callbacks ====================
258+
@Test
259+
public void testMultipleQueryCallbacks() {
260+
for (int i = 0; i < 5; i++) {
261+
Query query = stack.contentType("test").query();
262+
query.find(new QueryResultsCallBack() {
263+
@Override
264+
public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
265+
// Multiple callbacks
266+
}
267+
});
268+
}
269+
assertNotNull(stack);
270+
}
271+
272+
@Test
273+
public void testMultipleEntryCallbacks() {
274+
for (int i = 0; i < 5; i++) {
275+
Entry entry = stack.contentType("test").entry("uid" + i);
276+
entry.fetch(new EntryResultCallBack() {
277+
@Override
278+
public void onCompletion(ResponseType responseType, Error error) {
279+
// Multiple callbacks
280+
}
281+
});
282+
}
283+
assertNotNull(stack);
284+
}
285+
286+
@Test
287+
public void testMultipleAssetCallbacks() {
288+
for (int i = 0; i < 5; i++) {
289+
Asset asset = stack.asset("asset_" + i);
290+
asset.fetch(new FetchResultCallback() {
291+
@Override
292+
public void onCompletion(ResponseType responseType, Error error) {
293+
// Multiple callbacks
294+
}
295+
});
296+
}
297+
assertNotNull(stack);
298+
}
299+
}
300+

0 commit comments

Comments
 (0)