@Before public void shutUp() { initMocks(this); when(picasso.transformRequest(any(Request.class))).thenAnswer(TRANSFORM_REQUEST_ANSWER); }
/** Create the request optionally passing it through the request transformer. */ private Request createRequest(long started) { int id = nextId.getAndIncrement(); Request request = data.build(); request.id = id; request.started = started; boolean loggingEnabled = picasso.loggingEnabled; if (loggingEnabled) { log(OWNER_MAIN, VERB_CREATED, request.plainId(), request.toString()); } Request transformed = picasso.transformRequest(request); if (transformed != request) { // If the request was changed, copy over the id and timestamp from the original. transformed.id = id; transformed.started = started; if (loggingEnabled) { log(OWNER_MAIN, VERB_CHANGED, transformed.logId(), "into " + transformed); } } return transformed; }
@Test public void preDrawSubmitsRequestAndCleansUp() { Picasso picasso = mock(Picasso.class); when(picasso.transformRequest(any(Request.class))).thenAnswer(TRANSFORM_REQUEST_ANSWER); RequestCreator creator = new RequestCreator(picasso, URI_1, 0); ImageView target = mockFitImageViewTarget(true); when(target.getWidth()).thenReturn(100); when(target.getHeight()).thenReturn(100); ViewTreeObserver observer = target.getViewTreeObserver(); DeferredRequestCreator request = new DeferredRequestCreator(creator, target, null); request.onPreDraw(); verify(observer).removeOnPreDrawListener(request); verify(picasso).enqueueAndSubmit(actionCaptor.capture()); Action value = actionCaptor.getValue(); assertThat(value).isInstanceOf(ImageViewAction.class); assertThat(value.request.targetWidth).isEqualTo(100); assertThat(value.request.targetHeight).isEqualTo(100); } }
@Test public void throwWhenTransformRequestReturnsNull() { RequestTransformer brokenTransformer = new RequestTransformer() { @Override public Request transformRequest(Request request) { return null; } }; Picasso picasso = new Picasso(context, dispatcher, UNUSED_CALL_FACTORY, null, cache, listener, Collections.singletonList(brokenTransformer), NO_HANDLERS, stats, ARGB_8888, false, false); Request request = new Request.Builder(URI_1).build(); try { picasso.transformRequest(request); fail("Returning null from transformRequest() should throw"); } catch (IllegalStateException expected) { assertThat(expected).hasMessageThat() .isEqualTo("Request transformer " + brokenTransformer.getClass().getCanonicalName() + " returned null for " + request); } }