package com.bumptech.glide.load.resource.gif;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.graphics.Bitmap;
import com.bumptech.glide.gifdecoder.GifDecoder;
import com.bumptech.glide.load.Options;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE, sdk = 18)
public class GifFrameResourceDecoderTest {
private GifDecoder gifDecoder;
private GifFrameResourceDecoder resourceDecoder;
private Options options;
@Before
public void setUp() {
gifDecoder = mock(GifDecoder.class);
resourceDecoder = new GifFrameResourceDecoder(mock(BitmapPool.class));
options = new Options();
}
@Test
public void testReturnsFrameFromGifDecoder() throws IOException {
Bitmap expected = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_4444);
when(gifDecoder.getNextFrame()).thenReturn(expected);
assertEquals(expected, resourceDecoder.decode(gifDecoder, 100, 100, options).get());
}
@Test
public void testReturnsNullIfGifDecoderReturnsNullFrame() {
when(gifDecoder.getNextFrame()).thenReturn(null);
assertNull(resourceDecoder.decode(gifDecoder, 100, 100, options));
}
}