Skip to content

Commit 6d1a422

Browse files
committed
add test for testing the json encoding of unsent requests
1 parent bf706ae commit 6d1a422

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

AndroidSDKCore/src/main/java/com/leanplum/internal/Request.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ protected Void doInBackground(Void... params) {
481481
}
482482

483483

484-
private static class RequestsWithEncoding {
484+
static class RequestsWithEncoding {
485485
List<Map<String, Object>> unsentRequests;
486486
List<Map<String, Object>> requestsToSend;
487487
String jsonEncodedString;
@@ -510,7 +510,7 @@ private RequestsWithEncoding getRequestsWithEncodedStringForErrors() {
510510
return requestsWithEncoding;
511511
}
512512

513-
private RequestsWithEncoding getRequestsWithEncodedStringStoredRequests() {
513+
protected RequestsWithEncoding getRequestsWithEncodedStringStoredRequests() {
514514
List<Map<String, Object>> unsentRequests;
515515
List<Map<String, Object>> requestsToSend;
516516
String jsonEncodedRequestsToSend;
@@ -648,7 +648,7 @@ static void deleteSentRequests(int requestsCount) {
648648
}
649649
}
650650

651-
private static List<Map<String, Object>> getUnsentRequests() {
651+
protected List<Map<String, Object>> getUnsentRequests() {
652652
List<Map<String, Object>> requestData;
653653

654654
synchronized (Request.class) {

AndroidSDKTests/src/test/java/com/leanplum/internal/RequestTest.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
import java.util.List;
4545
import java.util.Map;
4646

47+
import static org.mockito.Mockito.spy;
48+
import static org.mockito.Mockito.when;
49+
4750
/**
4851
* @author Ben Marten
4952
*/
@@ -90,19 +93,17 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
9093
Method removeIrrelevantBackgroundStartRequests =
9194
Request.class.getDeclaredMethod("removeIrrelevantBackgroundStartRequests", List.class);
9295
removeIrrelevantBackgroundStartRequests.setAccessible(true);
93-
Method getUnsentRequests = Request.class.getDeclaredMethod("getUnsentRequests");
94-
getUnsentRequests.setAccessible(true);
9596

9697
// Invoke method with specific test data.
9798
// Expectation: No request returned.
98-
List unsentRequests = (List) getUnsentRequests.invoke(Request.class);
99+
List unsentRequests = request.getUnsentRequests();
99100
assertNotNull(unsentRequests);
100101
assertEquals(0, unsentRequests.size());
101102

102103
// Regular start request.
103104
// Expectation: One request returned.
104105
request.sendEventually();
105-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
106+
unsentRequests = request.getUnsentRequests();
106107
assertNotNull(unsentRequests);
107108
assertEquals(1, unsentRequests.size());
108109
Request.deleteSentRequests(unsentRequests.size());
@@ -117,7 +118,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
117118
put(Constants.Params.BACKGROUND, Boolean.toString(false));
118119
put("fg", "2");
119120
}}).sendEventually();
120-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
121+
unsentRequests = request.getUnsentRequests();
121122
assertNotNull(unsentRequests);
122123
assertEquals(2, unsentRequests.size());
123124
Request.deleteSentRequests(unsentRequests.size());
@@ -132,7 +133,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
132133
put(Constants.Params.BACKGROUND, Boolean.toString(false));
133134
put("fg", "1");
134135
}}).sendEventually();
135-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
136+
unsentRequests = request.getUnsentRequests();
136137
List unsentRequestsData =
137138
(List) removeIrrelevantBackgroundStartRequests.invoke(Request.class, unsentRequests);
138139
assertNotNull(unsentRequestsData);
@@ -154,7 +155,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
154155
put(Constants.Params.BACKGROUND, Boolean.toString(false));
155156
put("fg", "1");
156157
}}).sendEventually();
157-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
158+
unsentRequests = request.getUnsentRequests();
158159

159160
assertNotNull(unsentRequests);
160161
unsentRequestsData =
@@ -177,7 +178,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
177178
put(Constants.Params.BACKGROUND, Boolean.toString(true));
178179
put("bg", "2");
179180
}}).sendEventually();
180-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
181+
unsentRequests = request.getUnsentRequests();
181182
assertNotNull(unsentRequests);
182183
unsentRequestsData =
183184
(List) removeIrrelevantBackgroundStartRequests.invoke(Request.class, unsentRequests);
@@ -199,7 +200,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
199200
put(Constants.Params.BACKGROUND, Boolean.toString(true));
200201
put("bg", "2");
201202
}}).sendEventually();
202-
unsentRequests = (List) getUnsentRequests.invoke(Request.class);
203+
unsentRequests = request.getUnsentRequests();
203204
unsentRequestsData =
204205
(List) removeIrrelevantBackgroundStartRequests.invoke(Request.class, unsentRequests);
205206
assertNotNull(unsentRequestsData);
@@ -208,6 +209,19 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
208209
LeanplumEventDataManagerTest.setDatabaseToNull();
209210
}
210211

212+
@Test
213+
public void testJsonEncodeUnsentRequests() {
214+
List<Map<String, Object>> requests = mockRequests(2, 2);
215+
216+
Request realRequest = new Request("POST", Constants.Methods.START, null);
217+
Request request = spy(realRequest);
218+
when(request.getUnsentRequests()).thenReturn(requests);
219+
220+
Request.RequestsWithEncoding requestsWithEncoding = request.getRequestsWithEncodedStringStoredRequests();
221+
222+
assertEquals("{\"data\":[{\"0\":\"0\"},{\"0\":\"1\"},{\"1\":\"0\"},{\"1\":\"1\"}]}", requestsWithEncoding.jsonEncodedString);
223+
}
224+
211225
@Test
212226
public void testGetRequestsWithEncodedStringStoredRequests() {
213227
List<Map<String, Object>> requests = mockRequests(2, 2);

0 commit comments

Comments
 (0)