private void verifyActionComplete(Action action) { ArgumentCaptor<RequestHandler.Result> captor = ArgumentCaptor.forClass(RequestHandler.Result.class); verify(action).complete(captor.capture()); RequestHandler.Result result = captor.getValue(); assertThat(result.getBitmap()).isEqualTo(bitmap); assertThat(result.getLoadedFrom()).isEqualTo(MEMORY); } }
private void deliverAction(@Nullable RequestHandler.Result result, Action action, @Nullable Exception e) { if (action.cancelled) { return; } if (!action.willReplay) { targetToAction.remove(action.getTarget()); } if (result != null) { action.complete(result); if (loggingEnabled) { log(OWNER_MAIN, VERB_COMPLETED, action.request.logId(), "from " + result.getLoadedFrom()); } } else { Exception exception = checkNotNull(e, "e == null"); action.error(exception); if (loggingEnabled) { log(OWNER_MAIN, VERB_ERRORED, action.request.logId(), exception.getMessage()); } } }
@Test public void completeInvokesSuccessOnAllSuccessfulRequests() { Action action1 = mockAction(URI_KEY_1, URI_1, mockImageViewTarget()); Action action2 = mockCanceledAction(); BitmapHunter hunter = mockHunter(URI_KEY_1, new RequestHandler.Result(bitmap, MEMORY)); when(hunter.getActions()).thenReturn(Arrays.asList(action1, action2)); picasso.complete(hunter); verifyActionComplete(action1); verify(action2, never()).complete(any(RequestHandler.Result.class)); }