@Test public void testDrain_empty() throws Exception { List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); assertTrue(events.isEmpty()); }
@Test public void testDrain_empty() throws Exception { List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); assertTrue(events.isEmpty()); }
@Test public void testDrain_diskCache_empty() throws Exception { List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); verify(mEventDiskCache, never()).uncache(); assertTrue(events.isEmpty()); }
@Test public void testDrain_diskCache_empty() throws Exception { List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); verify(mEventDiskCache, never()).uncache(); assertTrue(events.isEmpty()); }
@Test public void testDrain_diskCache_nonempty() throws Exception { List<Event> events = new ArrayList<>(); when(mEventDiskCache.uncache()).thenReturn(Collections.singletonList(new Event("test"))); mEventCache.updateState(true); mEventCache.drainTo(events); verify(mEventDiskCache).uncache(); assertFalse(events.isEmpty()); }
@Test public void testDrain_diskCache_nonempty() throws Exception { List<Event> events = new ArrayList<>(); when(mEventDiskCache.uncache()).thenReturn(Collections.singletonList(new Event("test"))); mEventCache.updateState(true); mEventCache.drainTo(events); verify(mEventDiskCache).uncache(); assertFalse(events.isEmpty()); }
@Test public void testConnectivityChange() throws Exception { List<Packet> dryRunData = Collections.synchronizedList(new ArrayList<Packet>()); mDispatcher.setDryRunTarget(dryRunData); when(mConnectivity.isConnected()).thenReturn(false); mDispatcher.submit(getTestEvent()); mDispatcher.forceDispatch(); verify(mEventCache, timeout(1000)).add(any()); verify(mEventCache, never()).drainTo(Matchers.anyList()); assertThat(dryRunData.size(), is(0)); when(mConnectivity.isConnected()).thenReturn(true); mDispatcher.forceDispatch(); await().atMost(1, TimeUnit.SECONDS).until(() -> dryRunData.size(), is(1)); verify(mEventCache).updateState(true); verify(mEventCache).drainTo(Matchers.anyList()); }
@Test public void testConnectivityChange() throws Exception { List<Packet> dryRunData = Collections.synchronizedList(new ArrayList<Packet>()); mDispatcher.setDryRunTarget(dryRunData); when(mConnectivity.isConnected()).thenReturn(false); mDispatcher.submit(getTestEvent()); mDispatcher.forceDispatch(); verify(mEventCache, timeout(1000)).add(any()); verify(mEventCache, never()).drainTo(Matchers.anyList()); assertThat(dryRunData.size(), is(0)); when(mConnectivity.isConnected()).thenReturn(true); mDispatcher.forceDispatch(); await().atMost(1, TimeUnit.SECONDS).until(() -> dryRunData.size(), is(1)); verify(mEventCache).updateState(true); verify(mEventCache).drainTo(Matchers.anyList()); }
@Test public void testDispatchMode_wifiOnly() throws Exception { List<Packet> dryRunData = Collections.synchronizedList(new ArrayList<Packet>()); mDispatcher.setDryRunTarget(dryRunData); when(mConnectivity.getType()).thenReturn(Connectivity.Type.MOBILE); mDispatcher.setDispatchMode(DispatchMode.WIFI_ONLY); mDispatcher.submit(getTestEvent()); mDispatcher.forceDispatch(); verify(mEventCache, timeout(1000)).updateState(false); verify(mEventCache, never()).drainTo(Matchers.anyList()); when(mConnectivity.getType()).thenReturn(Connectivity.Type.WIFI); mDispatcher.forceDispatch(); await().atMost(1, TimeUnit.SECONDS).until(() -> dryRunData.size(), is(1)); verify(mEventCache).updateState(true); verify(mEventCache).drainTo(Matchers.anyList()); }
int count = 0; List<Event> drainedEvents = new ArrayList<>(); mEventCache.drainTo(drainedEvents); Timber.tag(TAG).d("Drained %s events.", drainedEvents.size()); for (Packet packet : mPacketFactory.buildPackets(drainedEvents)) {
int count = 0; List<Event> drainedEvents = new ArrayList<>(); mEventCache.drainTo(drainedEvents); Timber.tag(TAG).d("Drained %s events.", drainedEvents.size()); for (Packet packet : mPacketFactory.buildPackets(drainedEvents)) {
@Test public void testDispatchMode_wifiOnly() throws Exception { List<Packet> dryRunData = Collections.synchronizedList(new ArrayList<Packet>()); mDispatcher.setDryRunTarget(dryRunData); when(mConnectivity.getType()).thenReturn(Connectivity.Type.MOBILE); mDispatcher.setDispatchMode(DispatchMode.WIFI_ONLY); mDispatcher.submit(getTestEvent()); mDispatcher.forceDispatch(); verify(mEventCache, timeout(1000)).updateState(false); verify(mEventCache, never()).drainTo(Matchers.anyList()); when(mConnectivity.getType()).thenReturn(Connectivity.Type.WIFI); mDispatcher.forceDispatch(); await().atMost(1, TimeUnit.SECONDS).until(() -> dryRunData.size(), is(1)); verify(mEventCache).updateState(true); verify(mEventCache).drainTo(Matchers.anyList()); }
@Test public void testDrain_diskCache_first() throws Exception { mEventCache.add(new Event("3")); List<Event> events = new ArrayList<>(); when(mEventDiskCache.uncache()).thenReturn(Arrays.asList(new Event("1"), new Event("2"))); mEventCache.updateState(true); mEventCache.drainTo(events); verify(mEventDiskCache).uncache(); assertFalse(events.isEmpty()); assertEquals("1", events.get(0).getEncodedQuery()); assertEquals("2", events.get(1).getEncodedQuery()); assertEquals("3", events.get(2).getEncodedQuery()); }
@Test public void testDrain_diskCache_first() throws Exception { mEventCache.add(new Event("3")); List<Event> events = new ArrayList<>(); when(mEventDiskCache.uncache()).thenReturn(Arrays.asList(new Event("1"), new Event("2"))); mEventCache.updateState(true); mEventCache.drainTo(events); verify(mEventDiskCache).uncache(); assertFalse(events.isEmpty()); assertEquals("1", events.get(0).getEncodedQuery()); assertEquals("2", events.get(1).getEncodedQuery()); assertEquals("3", events.get(2).getEncodedQuery()); }
@Test public void testUpdateState_offline_ordering() throws Exception { assertTrue(mEventCache.isEmpty()); mEventCache.add(new Event("test2")); when(mEventDiskCache.uncache()).thenReturn(Arrays.asList(new Event("test0"), new Event("test1"))); mEventCache.updateState(true); List<Event> restoredEvents = new ArrayList<>(); mEventCache.drainTo(restoredEvents); assertEquals(3, restoredEvents.size()); assertEquals("test0", restoredEvents.get(0).getEncodedQuery()); assertEquals("test1", restoredEvents.get(1).getEncodedQuery()); assertEquals("test2", restoredEvents.get(2).getEncodedQuery()); }
mEventCacheData.drainTo(drainTarget); return null; }).when(mEventCache).drainTo(Matchers.anyList()); doAnswer(invocation -> { List<Event> toRequeue = invocation.getArgument(0);
@Test public void testUpdateState_offline_ordering() throws Exception { assertTrue(mEventCache.isEmpty()); mEventCache.add(new Event("test2")); when(mEventDiskCache.uncache()).thenReturn(Arrays.asList(new Event("test0"), new Event("test1"))); mEventCache.updateState(true); List<Event> restoredEvents = new ArrayList<>(); mEventCache.drainTo(restoredEvents); assertEquals(3, restoredEvents.size()); assertEquals("test0", restoredEvents.get(0).getEncodedQuery()); assertEquals("test1", restoredEvents.get(1).getEncodedQuery()); assertEquals("test2", restoredEvents.get(2).getEncodedQuery()); }
mEventCacheData.drainTo(drainTarget); return null; }).when(mEventCache).drainTo(Matchers.anyList()); doAnswer(invocation -> { List<Event> toRequeue = invocation.getArgument(0);
@Test public void testDrain_simple() throws Exception { assertTrue(mEventCache.isEmpty()); mEventCache.add(new Event("test")); assertFalse(mEventCache.isEmpty()); List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); assertEquals("test", events.get(0).getEncodedQuery()); assertTrue(mEventCache.isEmpty()); }
@Test public void testDrain_simple() throws Exception { assertTrue(mEventCache.isEmpty()); mEventCache.add(new Event("test")); assertFalse(mEventCache.isEmpty()); List<Event> events = new ArrayList<>(); mEventCache.drainTo(events); assertEquals("test", events.get(0).getEncodedQuery()); assertTrue(mEventCache.isEmpty()); }