@Test public void performCancelUnqueuesAndDetachesPausedRequest() { Action action = mockAction(URI_KEY_1, URI_1, mockTarget(), "tag"); BitmapHunter hunter = mockHunter(URI_KEY_1 + KEY_SEPARATOR, new RequestHandler.Result(bitmap1, MEMORY), action); dispatcher.hunterMap.put(URI_KEY_1 + KEY_SEPARATOR, hunter); dispatcher.pausedTags.add("tag"); dispatcher.pausedActions.put(action.getTarget(), action); dispatcher.performCancel(action); assertThat(dispatcher.pausedTags).containsExactly("tag"); assertThat(dispatcher.pausedActions).isEmpty(); verify(hunter).detach(action); }
@Test public void performCancelDetachesRequestAndCleansUp() { BitmapTarget target = mockTarget(); Action action = mockAction(URI_KEY_1, URI_1, target); BitmapHunter hunter = mockHunter(URI_KEY_1 + KEY_SEPARATOR, new RequestHandler.Result(bitmap1, MEMORY)); hunter.attach(action); when(hunter.cancel()).thenReturn(true); dispatcher.hunterMap.put(URI_KEY_1 + KEY_SEPARATOR, hunter); dispatcher.failedActions.put(target, action); dispatcher.performCancel(action); verify(hunter).detach(action); verify(hunter).cancel(); assertThat(dispatcher.hunterMap).isEmpty(); assertThat(dispatcher.failedActions).isEmpty(); }
@Test public void performCancelMultipleRequestsDetachesOnly() { Action action1 = mockAction(URI_KEY_1, URI_1); Action action2 = mockAction(URI_KEY_1, URI_1); BitmapHunter hunter = mockHunter(URI_KEY_1 + KEY_SEPARATOR, new RequestHandler.Result(bitmap1, MEMORY)); hunter.attach(action1); hunter.attach(action2); dispatcher.hunterMap.put(URI_KEY_1 + KEY_SEPARATOR, hunter); dispatcher.performCancel(action1); verify(hunter).detach(action1); verify(hunter).cancel(); assertThat(dispatcher.hunterMap).hasSize(1); }
dispatcher.performCancel(action); break;
@Test public void performCancelWithFetchActionWithCallback() { String pausedTag = "pausedTag"; dispatcher.pausedTags.add(pausedTag); assertThat(dispatcher.pausedActions).isEmpty(); Callback callback = mockCallback(); FetchAction fetchAction1 = new FetchAction(mockPicasso(), new Request.Builder(URI_1).tag(pausedTag).build(), callback); dispatcher.performCancel(fetchAction1); fetchAction1.cancel(); assertThat(dispatcher.pausedActions).isEmpty(); }