void performSubmit(Action action) { performSubmit(action, true); }
private void flushFailedActions() { if (!failedActions.isEmpty()) { Iterator<Action> iterator = failedActions.values().iterator(); while (iterator.hasNext()) { Action action = iterator.next(); iterator.remove(); if (action.picasso.loggingEnabled) { log(OWNER_DISPATCHER, VERB_REPLAYING, action.request.logId()); } performSubmit(action, false); } } }
@Test public void performSubmitWithTwoDifferentRequestsQueuesHunters() { Action action1 = mockAction(URI_KEY_1, URI_1); Action action2 = mockAction(URI_KEY_2, URI_2); dispatcher.performSubmit(action1); dispatcher.performSubmit(action2); assertThat(dispatcher.hunterMap).hasSize(2); verify(service, times(2)).submit(any(BitmapHunter.class)); }
@Test public void performSubmitWithShutdownServiceIgnoresRequest() { when(service.isShutdown()).thenReturn(true); Action action = mockAction(URI_KEY_1, URI_1); dispatcher.performSubmit(action); assertThat(dispatcher.hunterMap).isEmpty(); verify(service, never()).submit(any(BitmapHunter.class)); }
@Test public void performSubmitWithExistingRequestAttachesToHunter() { Action action1 = mockAction(URI_KEY_1, URI_1); Action action2 = mockAction(URI_KEY_1, URI_1); dispatcher.performSubmit(action1); dispatcher.performSubmit(action2); assertThat(dispatcher.hunterMap).hasSize(1); verify(service).submit(any(BitmapHunter.class)); }
@Test public void performSubmitWithNewRequestQueuesHunter() { Action action = mockAction(URI_KEY_1, URI_1); dispatcher.performSubmit(action); assertThat(dispatcher.hunterMap).hasSize(1); verify(service).submit(any(BitmapHunter.class)); }
@Test public void performPauseTagQueuesNewRequestDoesNotSubmit() { dispatcher.performPauseTag("tag"); Action action = mockAction(URI_KEY_1, URI_1, "tag"); dispatcher.performSubmit(action); assertThat(dispatcher.hunterMap).isEmpty(); assertThat(dispatcher.pausedActions).hasSize(1); assertThat(dispatcher.pausedActions.containsValue(action)).isTrue(); verify(service, never()).submit(any(BitmapHunter.class)); }
@Test public void performSubmitWithShutdownAttachesRequest() { BitmapHunter hunter = mockHunter(URI_KEY_1 + KEY_SEPARATOR, new RequestHandler.Result(bitmap1, MEMORY)); dispatcher.hunterMap.put(URI_KEY_1 + KEY_SEPARATOR, hunter); when(service.isShutdown()).thenReturn(true); Action action = mockAction(URI_KEY_1, URI_1); dispatcher.performSubmit(action); assertThat(dispatcher.hunterMap).hasSize(1); verify(hunter).attach(action); verify(service, never()).submit(any(BitmapHunter.class)); }
@Test public void performPauseTagDoesNotQueueUnrelatedRequest() { dispatcher.performPauseTag("tag"); Action action = mockAction(URI_KEY_1, URI_1, "anothertag"); dispatcher.performSubmit(action); assertThat(dispatcher.hunterMap).hasSize(1); assertThat(dispatcher.pausedActions).isEmpty(); verify(service).submit(any(BitmapHunter.class)); }
@Test public void performSubmitWithFetchAction() { String pausedTag = "pausedTag"; dispatcher.pausedTags.add(pausedTag); assertThat(dispatcher.pausedActions).isEmpty(); FetchAction fetchAction1 = new FetchAction(mockPicasso(), new Request.Builder(URI_1).tag(pausedTag).build(), null); FetchAction fetchAction2 = new FetchAction(mockPicasso(), new Request.Builder(URI_1).tag(pausedTag).build(), null); dispatcher.performSubmit(fetchAction1); dispatcher.performSubmit(fetchAction2); assertThat(dispatcher.pausedActions).hasSize(2); }
case REQUEST_SUBMIT: { Action action = (Action) msg.obj; dispatcher.performSubmit(action); break;