@Test public void testLocalVideoMicroThumbnailSuccess() throws Exception { when(mProducerListener.requiresExtraMap(mRequestId)).thenReturn(true); when(android.media.ThumbnailUtils.createVideoThumbnail( mFile.getPath(), MediaStore.Images.Thumbnails.MICRO_KIND)) .thenReturn(mBitmap); doAnswer( new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { mCloseableReference = ((CloseableReference) invocation.getArguments()[0]).clone(); return null; } }) .when(mConsumer) .onNewResult(any(CloseableReference.class), eq(true)); mLocalVideoThumbnailProducer.produceResults(mConsumer, mProducerContext); mExecutor.runUntilIdle(); assertEquals(1, mCloseableReference.getUnderlyingReferenceTestOnly().getRefCountTestOnly()); assertEquals( mBitmap, mCloseableReference.getUnderlyingReferenceTestOnly().get().getUnderlyingBitmap()); verify(mProducerListener).onProducerStart(mRequestId, PRODUCER_NAME); Map<String, String> thumbnailFoundMap = ImmutableMap.of(LocalVideoThumbnailProducer.CREATED_THUMBNAIL, "true"); verify(mProducerListener) .onProducerFinishWithSuccess(mRequestId, PRODUCER_NAME, thumbnailFoundMap); }
@Test public void testLocalVideoMicroThumbnailReturnsNull() throws Exception { when(mProducerListener.requiresExtraMap(mRequestId)).thenReturn(true); when(android.media.ThumbnailUtils.createVideoThumbnail( mFile.getPath(), MediaStore.Images.Thumbnails.MICRO_KIND)) .thenReturn(null); mLocalVideoThumbnailProducer.produceResults(mConsumer, mProducerContext); mExecutor.runUntilIdle(); verify(mConsumer).onNewResult(null, true); verify(mProducerListener).onProducerStart(mRequestId, PRODUCER_NAME); Map<String, String> thumbnailNotFoundMap = ImmutableMap.of(LocalVideoThumbnailProducer.CREATED_THUMBNAIL, "false"); verify(mProducerListener) .onProducerFinishWithSuccess(mRequestId, PRODUCER_NAME, thumbnailNotFoundMap); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); mBitmapMemoryCacheGetProducer = new BitmapMemoryCacheGetProducer(mMemoryCache, mCacheKeyFactory, mInputProducer); mCloseableImage1 = mock(CloseableImage.class); mFinalImageReference = CloseableReference.of(mCloseableImage1); when(mCloseableImage1.getQualityInfo()).thenReturn(ImmutableQualityInfo.FULL_QUALITY); when(mProducerContext.getImageRequest()).thenReturn(mImageRequest); when(mProducerContext.getListener()).thenReturn(mProducerListener); when(mProducerContext.getId()).thenReturn(mRequestId); when(mProducerListener.requiresExtraMap(mRequestId)).thenReturn(true); when(mProducerContext.getLowestPermittedRequestLevel()) .thenReturn(ImageRequest.RequestLevel.FULL_FETCH); when(mProducerContext.getCallerContext()).thenReturn(PRODUCER_NAME); when(mCacheKeyFactory.getBitmapCacheKey(mImageRequest, PRODUCER_NAME)).thenReturn(mCacheKey); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); mEncodedMemoryCacheProducer = new EncodedMemoryCacheProducer(mMemoryCache, mCacheKeyFactory, mNextProducer); mCacheKey = new SimpleCacheKey("http://dummy.uri"); mPooledByteBuffer1 = mock(PooledByteBuffer.class); mPooledByteBuffer2 = mock(PooledByteBuffer.class); mFinalImageReference = CloseableReference.of(mPooledByteBuffer1); mIntermediateImageReference = CloseableReference.of(mPooledByteBuffer2); mFinalImageReferenceClone = mFinalImageReference.clone(); mFinalEncodedImage = new EncodedImage(mFinalImageReference); mIntermediateEncodedImage = new EncodedImage(mIntermediateImageReference); mFinalEncodedImageClone = new EncodedImage(mFinalImageReferenceClone); when(mMemoryCache.cache(mCacheKey, mFinalImageReference)).thenReturn(mFinalImageReferenceClone); when(mProducerContext.getImageRequest()).thenReturn(mImageRequest); when(mProducerContext.getListener()).thenReturn(mProducerListener); when(mProducerListener.requiresExtraMap(mRequestId)).thenReturn(true); when(mProducerContext.getId()).thenReturn(mRequestId); when(mProducerContext.getLowestPermittedRequestLevel()) .thenReturn(ImageRequest.RequestLevel.FULL_FETCH); when(mCacheKeyFactory.getEncodedCacheKey(mImageRequest)).thenReturn(mCacheKey); }