private Dispatcher createDispatcher() { return createDispatcher(service); }
@Test public void correctExtrasOnReceiveAirplaneDispatches() { setAndVerifyAirplaneMode(false); setAndVerifyAirplaneMode(true); }
@Test public void performCompleteCleansUpAndDoesNotPostToMainIfCancelled() { Request data = new Request.Builder(URI_1).build(); Action action = noopAction(data); BitmapHunter hunter = new BitmapHunter(mockPicasso(), dispatcher, cache, stats, action, EMPTY_REQUEST_HANDLER); hunter.result = new RequestHandler.Result(bitmap1, MEMORY); hunter.future = new FutureTask<>(mock(Runnable.class), null); hunter.future.cancel(false); dispatcher.performComplete(hunter); assertThat(dispatcher.hunterMap).isEmpty(); // TODO verify no main thread interactions. }
@Test public void performCompleteCleansUpAndPostsToMain() { Request data = new Request.Builder(URI_1).build(); Action action = noopAction(data); BitmapHunter hunter = new BitmapHunter(mockPicasso(), dispatcher, cache, stats, action, EMPTY_REQUEST_HANDLER); hunter.result = new RequestHandler.Result(bitmap1, MEMORY); dispatcher.performComplete(hunter); assertThat(dispatcher.hunterMap).isEmpty(); // TODO verify post to main thread. }
private Dispatcher createDispatcher(boolean scansNetworkChanges) { return createDispatcher(service, scansNetworkChanges); }
@Test public void performCompleteWithNoStoreMemoryPolicy() { Request data = new Request.Builder(URI_1).memoryPolicy(MemoryPolicy.NO_STORE).build(); Action action = noopAction(data); BitmapHunter hunter = new BitmapHunter(mockPicasso(), dispatcher, cache, stats, action, EMPTY_REQUEST_HANDLER); hunter.result = new RequestHandler.Result(bitmap1, MEMORY); dispatcher.performComplete(hunter); assertThat(dispatcher.hunterMap).isEmpty(); assertThat(cache.size()).isEqualTo(0); }
private Dispatcher createDispatcher(ExecutorService service) { return createDispatcher(service, true); }
@Test public void performCompleteSetsResultInCache() { Request data = new Request.Builder(URI_1).build(); Action action = noopAction(data); BitmapHunter hunter = new BitmapHunter(mockPicasso(), dispatcher, cache, stats, action, EMPTY_REQUEST_HANDLER); hunter.result = new RequestHandler.Result(bitmap1, MEMORY); dispatcher.performComplete(hunter); assertThat(cache.get(hunter.getKey())).isSameAs(hunter.result.getBitmap()); }
@Before public void setUp() { initMocks(this); dispatcher = createDispatcher(); }
@Test public void performNetworkStateChangeWithNullInfoIgnores() { Dispatcher dispatcher = createDispatcher(serviceMock); dispatcher.performNetworkStateChange(null); verifyZeroInteractions(service); }
@Test public void performNetworkStateChangeWithDisconnectedInfoIgnores() { Dispatcher dispatcher = createDispatcher(serviceMock); NetworkInfo info = mockNetworkInfo(); when(info.isConnectedOrConnecting()).thenReturn(false); dispatcher.performNetworkStateChange(info); verifyZeroInteractions(service); }
@Test public void performNetworkStateChangeWithConnectedInfoDifferentInstanceIgnores() { Dispatcher dispatcher = createDispatcher(serviceMock); NetworkInfo info = mockNetworkInfo(true); dispatcher.performNetworkStateChange(info); verifyZeroInteractions(service); }
@Test public void performNetworkStateChangeFlushesFailedHunters() { PicassoExecutorService service = mock(PicassoExecutorService.class); NetworkInfo info = mockNetworkInfo(true); Dispatcher dispatcher = createDispatcher(service); Action failedAction1 = mockAction(URI_KEY_1, URI_1); Action failedAction2 = mockAction(URI_KEY_2, URI_2); dispatcher.failedActions.put(URI_KEY_1, failedAction1); dispatcher.failedActions.put(URI_KEY_2, failedAction2); dispatcher.performNetworkStateChange(info); verify(service, times(2)).submit(any(BitmapHunter.class)); assertThat(dispatcher.failedActions).isEmpty(); }
@Test public void performRetryDoesNotMarkForReplayIfNoNetworkScanning() { BitmapHunter hunter = mockHunter(URI_KEY_1, new RequestHandler.Result(bitmap1, MEMORY), mockAction(URI_KEY_1, URI_1)); when(hunter.shouldRetry(anyBoolean(), any(NetworkInfo.class))).thenReturn(false); when(hunter.supportsReplay()).thenReturn(true); Dispatcher dispatcher = createDispatcher(false); dispatcher.performRetry(hunter); assertThat(dispatcher.hunterMap).isEmpty(); assertThat(dispatcher.failedActions).isEmpty(); verify(service, never()).submit(hunter); }
@Test public void performRetryRetriesIfNoNetworkScanning() { BitmapHunter hunter = mockHunter(URI_KEY_1, new RequestHandler.Result(bitmap1, MEMORY), mockAction(URI_KEY_1, URI_1)); when(hunter.shouldRetry(anyBoolean(), isNull(NetworkInfo.class))).thenReturn(true); Dispatcher dispatcher = createDispatcher(false); dispatcher.performRetry(hunter); assertThat(dispatcher.hunterMap).isEmpty(); assertThat(dispatcher.failedActions).isEmpty(); verify(service).submit(hunter); }