Skip to content

Commit b5af4f2

Browse files
Add unit tests for TestQueryResultsCallBack, verifying onCompletion and always methods to ensure correct behavior and enhance test coverage.
1 parent 1a93f96 commit b5af4f2

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.contentstack.sdk;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.*;
6+
7+
public class TestQueryResultsCallBack {
8+
9+
private static class TestQueryResultsCallback extends QueryResultsCallBack {
10+
11+
ResponseType lastResponseType;
12+
QueryResult lastQueryResult;
13+
Error lastError;
14+
boolean onCompletionCalled = false;
15+
boolean alwaysCalled = false;
16+
17+
@Override
18+
public void onCompletion(ResponseType responseType, QueryResult queryresult, Error error) {
19+
onCompletionCalled = true;
20+
lastResponseType = responseType;
21+
lastQueryResult = queryresult;
22+
lastError = error;
23+
}
24+
25+
@Override
26+
void always() {
27+
alwaysCalled = true;
28+
}
29+
}
30+
31+
@Test
32+
public void testOnRequestFinishCallsOnCompletionWithQueryResultAndNullError() {
33+
TestQueryResultsCallback callback = new TestQueryResultsCallback();
34+
35+
// Use any valid ResponseType constant from your SDK
36+
ResponseType responseType = ResponseType.NETWORK; // change if needed
37+
38+
// We don't need a real QueryResult instance here; we just check behavior
39+
callback.onRequestFinish(responseType, null);
40+
41+
assertTrue(callback.onCompletionCalled);
42+
assertEquals(responseType, callback.lastResponseType);
43+
assertNull(callback.lastQueryResult); // we passed null
44+
assertNull(callback.lastError); // onRequestFinish must send null error
45+
assertFalse(callback.alwaysCalled);
46+
}
47+
48+
@Test
49+
public void testOnRequestFailCallsOnCompletionWithErrorAndNullQueryResult() {
50+
TestQueryResultsCallback callback = new TestQueryResultsCallback();
51+
52+
ResponseType responseType = ResponseType.NETWORK; // change if needed
53+
Error error = new Error(); // SDK Error with no-arg ctor
54+
55+
callback.onRequestFail(responseType, error);
56+
57+
assertTrue(callback.onCompletionCalled);
58+
assertEquals(responseType, callback.lastResponseType);
59+
assertNull(callback.lastQueryResult); // must be null on failure
60+
assertEquals(error, callback.lastError);
61+
assertFalse(callback.alwaysCalled);
62+
}
63+
64+
@Test
65+
public void testAlwaysOverrideIsCallable() {
66+
TestQueryResultsCallback callback = new TestQueryResultsCallback();
67+
68+
callback.always();
69+
70+
assertTrue(callback.alwaysCalled);
71+
}
72+
}

0 commit comments

Comments
 (0)