@Test public void testRequestListenerIsCalledWithLoadedFromMemoryIfLoadCompletesSynchronously() { final GenericRequest request = harness.getRequest(); when(harness.engine.load( anyInt(), anyInt(), any(ResourceDecoder.class), any(DataFetcher.class), any(Encoder.class), any(ResourceDecoder.class), any(Transformation.class), any(ResourceEncoder.class), any(ResourceTranscoder.class), any(Priority.class), anyBoolean(), any(DiskCacheStrategy.class), any(ResourceCallback.class))) .thenAnswer( new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { request.onResourceReady(harness.resource); return null; } }); request.begin(); request.onSizeReady(100, 100); verify(harness.requestListener) .onResourceReady( eq(harness.result), any(Number.class), any(Target.class), eq(true), anyBoolean()); }
@Test public void testEngineLoadCancelledOnCancel() { Engine.LoadStatus loadStatus = mock(Engine.LoadStatus.class); when(harness.engine.load( anyInt(), anyInt(), any(ResourceDecoder.class), any(DataFetcher.class), any(Encoder.class), any(ResourceDecoder.class), any(Transformation.class), any(ResourceEncoder.class), any(ResourceTranscoder.class), any(Priority.class), anyBoolean(), any(DiskCacheStrategy.class), any(ResourceCallback.class))) .thenReturn(loadStatus); GenericRequest request = harness.getRequest(); request.begin(); request.onSizeReady(100, 100); request.cancel(); verify(loadStatus).cancel(); }
@Test public void testEngineLoadPassedCorrectPriority() { Priority expected = Priority.HIGH; harness.priority = expected; GenericRequest request = harness.getRequest(); request.begin(); request.onSizeReady(100, 100); verify(harness.engine) .load( anyInt(), anyInt(), any(ResourceDecoder.class), any(DataFetcher.class), any(Encoder.class), any(ResourceDecoder.class), any(Transformation.class), any(ResourceEncoder.class), any(ResourceTranscoder.class), eq(expected), anyBoolean(), any(DiskCacheStrategy.class), any(ResourceCallback.class)); }
@Test public void testOnSizeReadyWithNullDataFetcherCallsOnException() { GenericRequest request = harness.getRequest(); when(harness.modelLoader.getResourceFetcher(any(Number.class), anyInt(), anyInt())) .thenReturn(null); request.begin(); request.onSizeReady(100, 100); verify(harness.requestListener) .onException(any(Exception.class), any(Number.class), any(Target.class), anyBoolean()); }
@Test public void testRequestListenerIsCalledWithNotLoadedFromMemoryCacheIfLoadCompletesAsynchronously() { GenericRequest request = harness.getRequest(); request.onSizeReady(100, 100); request.onResourceReady(harness.resource); verify(harness.requestListener) .onResourceReady( eq(harness.result), any(Number.class), any(Target.class), eq(false), anyBoolean()); }
@Test public void testDoesNotStartALoadIfOnSizeReadyIsCalledAfterCancel() { GenericRequest request = harness.getRequest(); request.cancel(); request.onSizeReady(100, 100); verify(harness.engine, never()) .load( anyInt(), anyInt(), any(ResourceDecoder.class), any(DataFetcher.class), any(Encoder.class), any(ResourceDecoder.class), any(Transformation.class), any(ResourceEncoder.class), any(ResourceTranscoder.class), any(Priority.class), anyBoolean(), any(DiskCacheStrategy.class), any(ResourceCallback.class)); }
@Test public void testIgnoresOnSizeReadyIfNotWaitingForSize() { GenericRequest request = harness.getRequest(); request.begin(); request.onSizeReady(100, 100); request.onSizeReady(100, 100); verify(harness.engine, times(1)) .load( eq(100), eq(100), any(ResourceDecoder.class), any(DataFetcher.class), any(Encoder.class), any(ResourceDecoder.class), any(Transformation.class), any(ResourceEncoder.class), any(ResourceTranscoder.class), any(Priority.class), anyBoolean(), any(DiskCacheStrategy.class), any(ResourceCallback.class)); }