package com.bumptech.glide.load.model; import com.google.common.testing.EqualsTester; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.junit.Assert.assertEquals; @RunWith(JUnit4.class) public class ModelCacheTest { private ModelCache cache; @Before public void setUp() { cache = new ModelCache(10); } @Test public void testModelKeyEquivalence() { new EqualsTester() .addEqualityGroup(ModelCache.ModelKey.get(14f, 100, 200), ModelCache.ModelKey.get(14f, 100, 200)) .addEqualityGroup(ModelCache.ModelKey.get(13f, 100, 200)) .addEqualityGroup(ModelCache.ModelKey.get(14f, 200, 200)) .addEqualityGroup(ModelCache.ModelKey.get(14f, 100, 300)) .testEquals(); } @Test public void testCanSetAndGetModel() { Object model = new Object(); int width = 10; int height = 20; Object result = new Object(); cache.put(model, width, height, result); assertEquals(result, cache.get(model, width, height)); } @Test public void testCanSetAndGetMultipleResultsWithDifferentDimensionsForSameObject() { Object model = new Object(); int firstWidth = 10, firstHeight = 20; Object firstResult = new Object(); int secondWidth = 30, secondHeight = 40; Object secondResult = new Object(); cache.put(model, firstWidth, firstHeight, firstResult); cache.put(model, secondWidth, secondHeight, secondResult); assertEquals(firstResult, cache.get(model, firstWidth, firstHeight)); assertEquals(secondResult, cache.get(model, secondWidth, secondHeight)); } }