@Test public void testReturnsWhenMissingSourceEncoderAndNotNeeded2() { harness.diskCacheStrategy = DiskCacheStrategy.NONE; when(harness.loadProvider.getSourceEncoder()).thenReturn(null); assertNotNull(harness.getRequest()); }
@Test public void testReturnsWhenMissingEncoderWhenNotNeeded1() { harness.diskCacheStrategy = DiskCacheStrategy.SOURCE; when(harness.loadProvider.getEncoder()).thenReturn(null); assertNotNull(harness.getRequest()); }
@Test(expected = NullPointerException.class) public void testThrowsWhenMissingSourceEncoderAndNeeded2() { harness.diskCacheStrategy = DiskCacheStrategy.ALL; when(harness.loadProvider.getSourceEncoder()).thenReturn(null); harness.getRequest(); }
@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(expected = NullPointerException.class) public void testThrowsWhenMissingEncoderWhenNeeded1() { harness.diskCacheStrategy = DiskCacheStrategy.RESULT; when(harness.loadProvider.getEncoder()).thenReturn(null); harness.getRequest(); }
@Test public void testCallsTargetOnResourceReadyIfNoRequestListener() { harness.requestListener = null; GenericRequest request = harness.getRequest(); request.onResourceReady(harness.resource); verify(harness.target).onResourceReady(eq(harness.result), any(GlideAnimation.class)); }
@Test public void testCallsTargetOnExceptionIfNoRequestListener() { harness.requestListener = null; GenericRequest request = harness.getRequest(); Exception exception = new IOException("test"); request.onException(exception); verify(harness.target).onLoadFailed(eq(exception), eq(harness.errorDrawable)); }
@Test public void testCallsGetSizeIfOverrideHeightIsLessThanZero() { harness.overrideHeight = -1; harness.overrideWidth = 100; GenericRequest request = harness.getRequest(); request.begin(); verify(harness.target).getSize(any(SizeReadyCallback.class)); }
@Test public void testDoesNotCallGetSizeIfOverrideWidthAndHeightAreSet() { harness.overrideWidth = 100; harness.overrideHeight = 100; GenericRequest request = harness.getRequest(); request.begin(); verify(harness.target, never()).getSize(any(SizeReadyCallback.class)); }
@Test public void testDoesNotSetErrorDrawableIfRequestCoordinatorDoesntAllowIt() { harness.errorDrawable = new ColorDrawable(Color.RED); GenericRequest request = harness.getRequest(); when(harness.requestCoordinator.canNotifyStatusChanged(any(Request.class))).thenReturn(false); request.onException(new IOException("Test")); verify(harness.target, never()).onLoadFailed(any(Exception.class), any(Drawable.class)); }
@Test public void testRequestListenerIsCalledWithIsFirstResourceIfNoRequestCoordinator() { harness.requestCoordinator = null; GenericRequest request = harness.getRequest(); request.onResourceReady(harness.resource); verify(harness.requestListener) .onResourceReady( eq(harness.result), any(Number.class), any(Target.class), anyBoolean(), eq(true)); }
@Test public void testPlaceholderDrawableIsSet() { Drawable expected = new ColorDrawable(Color.RED); MockTarget target = new MockTarget(); harness.placeholderDrawable = expected; harness.target = target; GenericRequest request = harness.getRequest(); request.begin(); assertEquals(expected, target.currentPlaceholder); }
@Test public void testErrorDrawableIsSetOnLoadFailed() { Drawable expected = new ColorDrawable(Color.RED); MockTarget target = new MockTarget(); harness.errorDrawable = expected; harness.target = target; GenericRequest request = harness.getRequest(); request.onException(null); assertEquals(expected, target.currentPlaceholder); }
@Test public void testThrowsWhenMissingModelLoader() { for (DiskCacheStrategy strategy : DiskCacheStrategy.values()) { harness = new RequestHarness(); harness.diskCacheStrategy = strategy; when(harness.loadProvider.getModelLoader()).thenReturn(null); try { harness.getRequest(); fail(NullPointerException.class.getSimpleName() + " expected for " + strategy); } catch (NullPointerException ex) { // expected } } }
@Test public void setTestPlaceholderDrawableSetOnNullModel() { Drawable placeholder = new ColorDrawable(Color.RED); MockTarget target = new MockTarget(); harness.placeholderDrawable = placeholder; harness.target = target; harness.model = null; GenericRequest request = harness.getRequest(); request.begin(); assertEquals(placeholder, target.currentPlaceholder); }
@Test public void testThrowsWhenTransformationIsNull() { for (DiskCacheStrategy strategy : DiskCacheStrategy.values()) { harness = new RequestHarness(); harness.diskCacheStrategy = strategy; harness.transformation = null; try { harness.getRequest(); fail(NullPointerException.class.getSimpleName() + " expected for " + strategy); } catch (NullPointerException ex) { // expected } } }
@Test public void testIsFailedAfterException() { GenericRequest request = harness.getRequest(); request.onException(new Exception("test")); assertTrue(request.isFailed()); }
@Test public void testPlaceholderResourceIsSet() { final int expectedId = 12345; Drawable expected = new ColorDrawable(Color.RED); Context context = mockContextToReturn(expectedId, expected); MockTarget target = new MockTarget(); harness.context = context; harness.placeholderResourceId = expectedId; harness.target = target; GenericRequest request = harness.getRequest(); request.begin(); assertEquals(expected, target.currentPlaceholder); }
@Test public void testIsCancelledAfterClear() { GenericRequest request = harness.getRequest(); request.clear(); assertTrue(request.isCancelled()); }
@Test public void testResourceOnlyReceivesOneGetOnResourceReady() { GenericRequest request = harness.getRequest(); request.onResourceReady(harness.resource); verify(harness.resource, times(1)).get(); }
@Test public void testIsFailedAfterNoResultAndNullException() { GenericRequest request = harness.getRequest(); request.onException(null); assertTrue(request.isFailed()); }
@Test public void testIsPausedAfterPause() { GenericRequest request = harness.getRequest(); request.pause(); assertTrue(request.isPaused()); }
@Test public void testCanReRunCancelledRequests() { doAnswer(new CallSizeReady(100, 100)) .when(harness.target) .getSize(any(SizeReadyCallback.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))) .thenAnswer(new CallResourceCallback(harness.resource)); GenericRequest request = harness.getRequest(); request.begin(); request.cancel(); request.begin(); verify(harness.target, times(2)).onResourceReady(eq(harness.result), any(GlideAnimation.class)); }
@Test public void testIsNotCancelledAfterPause() { GenericRequest request = harness.getRequest(); request.pause(); assertFalse(request.isCancelled()); }
@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 testIsNotRunningAfterComplete() { GenericRequest request = harness.getRequest(); request.begin(); request.onResourceReady(harness.resource); assertFalse(request.isRunning()); }
@Test public void testIsNotRunningAfterFailing() { GenericRequest request = harness.getRequest(); request.begin(); request.onException(new RuntimeException("Test")); assertFalse(request.isRunning()); }
@Test public void testIsNotCompleteAfterClear() { GenericRequest request = harness.getRequest(); request.onResourceReady(harness.resource); request.clear(); assertFalse(request.isComplete()); }
@Test public void testIsNotRunningAfterClear() { GenericRequest request = harness.getRequest(); request.begin(); request.clear(); assertFalse(request.isRunning()); }