package com.bumptech.glide.request.target; import static com.google.common.truth.Truth.assertThat; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.widget.ImageView; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE, sdk = 18) public class ImageViewTargetFactoryTest { private ImageViewTargetFactory factory; private ImageView view; @Before public void setUp() { factory = new ImageViewTargetFactory(); view = new ImageView(RuntimeEnvironment.application); } @Test public void testReturnsTargetForBitmaps() { Bitmap bitmap = Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888); Target<Bitmap> target = factory.buildTarget(view, Bitmap.class); target.onResourceReady(bitmap, null); assertThat(target).isInstanceOf(BitmapImageViewTarget.class); } @Test public void testReturnsTargetForBitmapDrawables() { BitmapDrawable drawable = new BitmapDrawable(RuntimeEnvironment.application.getResources(), Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_4444)); Target<BitmapDrawable> target = factory.buildTarget(view, BitmapDrawable.class); target.onResourceReady(drawable, null); assertThat(target).isInstanceOf(DrawableImageViewTarget.class); } @Test public void testReturnsTargetForDrawables() { Target<Drawable> target = factory.buildTarget(view, Drawable.class); target.onResourceReady(new ColorDrawable(Color.RED), null); assertThat(target).isInstanceOf(DrawableImageViewTarget.class); } @Test(expected = IllegalArgumentException.class) public void testThrowsForUnknownType() { factory.buildTarget(view, Object.class); } }