package com.bumptech.glide.load.engine.bitmap_recycle; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import android.graphics.Bitmap; import com.bumptech.glide.load.engine.bitmap_recycle.AttributeStrategy.Key; import com.google.common.testing.EqualsTester; 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 AttributeStrategyKeyTest { private AttributeStrategy.KeyPool keyPool; @Before public void setUp() { keyPool = mock(AttributeStrategy.KeyPool.class); } @Test public void testEquality() { Key first = new Key(keyPool); first.init(100, 100, Bitmap.Config.ARGB_4444); Key second = new Key(keyPool); second.init(100, 100, Bitmap.Config.ARGB_4444); Key third = new Key(keyPool); third.init(200, 100, Bitmap.Config.ARGB_4444); Key fourth = new Key(keyPool); fourth.init(100, 200, Bitmap.Config.ARGB_4444); Key fifth = new Key(keyPool); fifth.init(100, 100, Bitmap.Config.RGB_565); new EqualsTester().addEqualityGroup(first, second).addEqualityGroup(third) .addEqualityGroup(fourth).addEqualityGroup(fifth).testEquals(); } @Test public void testReturnsSelfToPoolOnOffer() { Key key = new Key(keyPool); key.offer(); verify(keyPool).offer(eq(key)); } @Test public void testInitSetsAttributes() { Key key = new Key(keyPool); key.init(100, 100, Bitmap.Config.ARGB_4444); Key other = new Key(keyPool); other.init(200, 200, Bitmap.Config.RGB_565); assertNotEquals(key, other); key.init(200, 200, Bitmap.Config.RGB_565); assertEquals(key, other); } }