Skip to content

Commit e4edead

Browse files
committed
add tests
1 parent 728b1a4 commit e4edead

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -518,8 +518,14 @@ protected RequestsWithEncoding getRequestsWithEncodedStringStoredRequests(double
518518
String jsonEncodedRequestsToSend;
519519
RequestsWithEncoding requestsWithEncoding = new RequestsWithEncoding();
520520

521-
unsentRequests = getUnsentRequests(fraction);
522-
requestsToSend = removeIrrelevantBackgroundStartRequests(unsentRequests);
521+
if (fraction < 0.01) {
522+
unsentRequests = new ArrayList<>(0);
523+
requestsToSend = new ArrayList<>(0);
524+
} else {
525+
unsentRequests = getUnsentRequests(fraction);
526+
requestsToSend = removeIrrelevantBackgroundStartRequests(unsentRequests);
527+
}
528+
523529
jsonEncodedRequestsToSend = jsonEncodeUnsentRequests(unsentRequests);
524530

525531
requestsWithEncoding.unsentRequests = unsentRequests;

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

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

47+
import static org.mockito.AdditionalMatchers.not;
48+
import static org.mockito.Matchers.eq;
4749
import static org.mockito.Mockito.spy;
4850
import static org.mockito.Mockito.when;
4951

@@ -208,7 +210,7 @@ public void testRemoveIrrelevantBackgroundStartRequests() throws NoSuchMethodExc
208210
Request.deleteSentRequests(unsentRequests.size());
209211
LeanplumEventDataManagerTest.setDatabaseToNull();
210212
}
211-
213+
212214
@Test
213215
public void testJsonEncodeUnsentRequestsWithExceptionLargeNumbers() throws NoSuchMethodException,
214216
InvocationTargetException, IllegalAccessException {
@@ -224,6 +226,8 @@ public void testJsonEncodeUnsentRequestsWithExceptionLargeNumbers() throws NoSuc
224226
requestsWithEncoding = request.getRequestsWithEncodedStringStoredRequests(1.0);
225227

226228
assertNotNull(requestsWithEncoding.unsentRequests);
229+
assertNotNull(requestsWithEncoding.requestsToSend);
230+
assertNotNull(requestsWithEncoding.jsonEncodedString);
227231
assertEquals(5000, requestsWithEncoding.unsentRequests.size());
228232

229233
// Throw OOM on 5000 requests
@@ -232,15 +236,27 @@ public void testJsonEncodeUnsentRequestsWithExceptionLargeNumbers() throws NoSuc
232236
requestsWithEncoding = request.getRequestsWithEncodedStringStoredRequests(1.0);
233237

234238
assertNotNull(requestsWithEncoding.unsentRequests);
239+
assertNotNull(requestsWithEncoding.requestsToSend);
240+
assertNotNull(requestsWithEncoding.jsonEncodedString);
235241
assertEquals(2500, requestsWithEncoding.unsentRequests.size());
236242

237243
// Throw OOM on 2500, 5000 requests
238244
// Expectation: 1250 requests returned.
239245
when(request.getUnsentRequests(0.5)).thenThrow(OutOfMemoryError.class);
240246
requestsWithEncoding = request.getRequestsWithEncodedStringStoredRequests(1.0);
241247

248+
// Throw OOM on >0 requests
249+
// Expectation: 0 requests returned but no crash
250+
251+
when(request.getUnsentRequests(not(eq(0)))).thenThrow(OutOfMemoryError.class);
252+
requestsWithEncoding = request.getRequestsWithEncodedStringStoredRequests(1.0);
253+
242254
assertNotNull(requestsWithEncoding.unsentRequests);
243-
assertEquals(1250, requestsWithEncoding.unsentRequests.size());
255+
assertNotNull(requestsWithEncoding.requestsToSend);
256+
assertNotNull(requestsWithEncoding.jsonEncodedString);
257+
assertEquals(0, requestsWithEncoding.unsentRequests.size());
258+
assertEquals(0, requestsWithEncoding.requestsToSend.size());
259+
assertEquals("{\"data\":[]}", requestsWithEncoding.jsonEncodedString);
244260

245261
}
246262

0 commit comments

Comments
 (0)