@Before public void setup() { when(mTracker.getMatomo()).thenReturn(mMatomo); when(mMatomo.getContext()).thenReturn(mContext); mBaseCacheDir = new File("baseCacheDir"); when(mContext.getCacheDir()).thenReturn(mBaseCacheDir); when(mTracker.getAPIUrl()).thenReturn("http://testhost/matomo.php"); when(mTracker.getOfflineCacheAge()).thenReturn(0L); mCacheFolder = new File(mBaseCacheDir, "piwik_cache"); mHostFolder = new File(mCacheFolder, "testhost"); mDiskCache = new EventDiskCache(mTracker); }
public Dispatcher build(Tracker tracker) { return new DefaultDispatcher( new EventCache(new EventDiskCache(tracker)), new Connectivity(tracker.getMatomo().getContext()), new PacketFactory(tracker.getAPIUrl()), new DefaultPacketSender() ); } }
@Before public void setup() { when(mTracker.getMatomo()).thenReturn(mMatomo); when(mMatomo.getContext()).thenReturn(mContext); mBaseCacheDir = new File("baseCacheDir"); when(mContext.getCacheDir()).thenReturn(mBaseCacheDir); when(mTracker.getAPIUrl()).thenReturn("http://testhost/matomo.php"); when(mTracker.getOfflineCacheAge()).thenReturn(0L); mCacheFolder = new File(mBaseCacheDir, "piwik_cache"); mHostFolder = new File(mCacheFolder, "testhost"); mDiskCache = new EventDiskCache(mTracker); }
public Dispatcher build(Tracker tracker) { return new DefaultDispatcher( new EventCache(new EventDiskCache(tracker)), new Connectivity(tracker.getMatomo().getContext()), new PacketFactory(tracker.getAPIUrl()), new DefaultPacketSender() ); } }
@Test public void testMaxSize_limited() { when(mTracker.getOfflineCacheSize()).thenReturn(500 * 1024L); mDiskCache = new EventDiskCache(mTracker); for (int j = 0; j < 4; j++) { List<Event> events = new ArrayList<>(); for (int k = 0; k < 4000; k++) { events.add(new Event(System.nanoTime(), UUID.randomUUID().toString())); } // About 206KB mDiskCache.cache(events); } assertEquals(3, mHostFolder.listFiles().length); final List<Event> events = mDiskCache.uncache(); assertEquals(8000, events.size()); }
@Test public void testMaxSize_disabled() { when(mTracker.getOfflineCacheSize()).thenReturn(0L); mDiskCache = new EventDiskCache(mTracker); for (int j = 0; j < 10; j++) { List<Event> events = new ArrayList<>(); for (int k = 0; k < 1000; k++) { events.add(new Event(System.nanoTime(), UUID.randomUUID().toString())); } mDiskCache.cache(events); } assertEquals(10, mHostFolder.listFiles().length); final List<Event> events = mDiskCache.uncache(); assertEquals(10000, events.size()); }
@Test public void testMaxSize_disabled() { when(mTracker.getOfflineCacheSize()).thenReturn(0L); mDiskCache = new EventDiskCache(mTracker); for (int j = 0; j < 10; j++) { List<Event> events = new ArrayList<>(); for (int k = 0; k < 1000; k++) { events.add(new Event(System.nanoTime(), UUID.randomUUID().toString())); } mDiskCache.cache(events); } assertEquals(10, mHostFolder.listFiles().length); final List<Event> events = mDiskCache.uncache(); assertEquals(10000, events.size()); }
@Test public void testMaxAge_negative_cachingDisabled() { when(mTracker.getOfflineCacheAge()).thenReturn(-1L); mDiskCache = new EventDiskCache(mTracker); Event event0 = new Event(-System.currentTimeMillis(), "test"); Event event1 = new Event(0, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); Event event3 = new Event(2 * System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event0, event1, event2, event3)); final List<Event> events = mDiskCache.uncache(); assertEquals(0, events.size()); }
@Test public void testMaxAge_negative_cachingDisabled() { when(mTracker.getOfflineCacheAge()).thenReturn(-1L); mDiskCache = new EventDiskCache(mTracker); Event event0 = new Event(-System.currentTimeMillis(), "test"); Event event1 = new Event(0, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); Event event3 = new Event(2 * System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event0, event1, event2, event3)); final List<Event> events = mDiskCache.uncache(); assertEquals(0, events.size()); }
@Test public void testMaxAge_positive_singleContainer() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(System.currentTimeMillis() - 60 * 1000, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); Event event3 = new Event(2 * System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event1, event2, event3)); final List<Event> events = mDiskCache.uncache(); assertEquals(2, events.size()); assertEquals(event2, events.get(0)); assertEquals(event3, events.get(1)); }
@Test public void testMaxAge_positive_singleContainer() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(System.currentTimeMillis() - 60 * 1000, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); Event event3 = new Event(2 * System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event1, event2, event3)); final List<Event> events = mDiskCache.uncache(); assertEquals(2, events.size()); assertEquals(event2, events.get(0)); assertEquals(event3, events.get(1)); }
@Test public void testMaxAge_positive_allStale() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(1, "test"); Event event2 = new Event(2, "test"); mDiskCache.cache(Arrays.asList(event1, event2)); assertEquals(0, mHostFolder.listFiles().length); final List<Event> events = mDiskCache.uncache(); assertEquals(0, events.size()); }
@Test public void testMaxAge_positive_multipleContainer() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(System.currentTimeMillis() - 20 * 1000, "test"); Event event2 = new Event(System.currentTimeMillis() - 15 * 1000, "test"); mDiskCache.cache(Arrays.asList(event1, event2)); Event event3 = new Event(System.currentTimeMillis() - 5 * 1000, "test"); Event event4 = new Event(System.currentTimeMillis() - 2 * 1000, "test"); mDiskCache.cache(Arrays.asList(event3, event4)); final List<Event> events = mDiskCache.uncache(); assertEquals(2, events.size()); assertEquals(event3, events.get(0)); assertEquals(event4, events.get(1)); }
@Test public void testMaxAge_positive_allStale() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(1, "test"); Event event2 = new Event(2, "test"); mDiskCache.cache(Arrays.asList(event1, event2)); assertEquals(0, mHostFolder.listFiles().length); final List<Event> events = mDiskCache.uncache(); assertEquals(0, events.size()); }
@Test public void testMaxAge_positive_multipleContainer() { when(mTracker.getOfflineCacheAge()).thenReturn(10 * 1000L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(System.currentTimeMillis() - 20 * 1000, "test"); Event event2 = new Event(System.currentTimeMillis() - 15 * 1000, "test"); mDiskCache.cache(Arrays.asList(event1, event2)); Event event3 = new Event(System.currentTimeMillis() - 5 * 1000, "test"); Event event4 = new Event(System.currentTimeMillis() - 2 * 1000, "test"); mDiskCache.cache(Arrays.asList(event3, event4)); final List<Event> events = mDiskCache.uncache(); assertEquals(2, events.size()); assertEquals(event3, events.get(0)); assertEquals(event4, events.get(1)); }
@Override public Dispatcher build(Tracker tracker) { return new DefaultDispatcher( new EventCache(new EventDiskCache(tracker)), new Connectivity(tracker.getMatomo().getContext()), new PacketFactory(tracker.getAPIUrl()), packetSender ); } });
@Override public Dispatcher build(Tracker tracker) { return new DefaultDispatcher( new EventCache(new EventDiskCache(tracker)), new Connectivity(tracker.getMatomo().getContext()), new PacketFactory(tracker.getAPIUrl()), packetSender ); } });
@Test public void testMaxAge_unlimited() { when(mTracker.getOfflineCacheAge()).thenReturn(0L); mDiskCache = new EventDiskCache(mTracker); Event event1 = new Event(-System.currentTimeMillis(), "test1"); Event event2 = new Event(0, "test2"); Event event3 = new Event(System.currentTimeMillis(), "test3"); Event event4 = new Event(2 * System.currentTimeMillis(), "test3"); mDiskCache.cache(Arrays.asList(event1, event2, event3, event4)); final List<Event> events = mDiskCache.uncache(); assertEquals(4, events.size()); assertEquals(event1, events.get(0)); assertEquals(event2, events.get(1)); assertEquals(event3, events.get(2)); assertEquals(event4, events.get(3)); }
@Test public void testClearDataOnceEvenIfDisabled() { Event event1 = new Event(0, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event1, event2)); assertFalse(mDiskCache.isEmpty()); mDiskCache = new EventDiskCache(mTracker); assertFalse(mDiskCache.isEmpty()); when(mTracker.getOfflineCacheAge()).thenReturn(-1L); mDiskCache = new EventDiskCache(mTracker); assertTrue(mDiskCache.isEmpty()); }
@Test public void testClearDataOnceEvenIfDisabled() { Event event1 = new Event(0, "test"); Event event2 = new Event(System.currentTimeMillis(), "test"); mDiskCache.cache(Arrays.asList(event1, event2)); assertFalse(mDiskCache.isEmpty()); mDiskCache = new EventDiskCache(mTracker); assertFalse(mDiskCache.isEmpty()); when(mTracker.getOfflineCacheAge()).thenReturn(-1L); mDiskCache = new EventDiskCache(mTracker); assertTrue(mDiskCache.isEmpty()); }