package com.bumptech.glide.load.resource.transcode; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.mock; import java.io.File; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class TranscoderRegistryTest { private TranscoderRegistry factories; @Before public void setUp() { factories = new TranscoderRegistry(); } @Test public void testReturnsUnitDecoderIfClassesAreIdentical() { assertEquals(UnitTranscoder.get(), factories.get(Object.class, Object.class)); } @Test public void testCanRegisterAndRetrieveResourceTranscoder() { @SuppressWarnings("unchecked") ResourceTranscoder<File, String> transcoder = mock(ResourceTranscoder.class); factories.register(File.class, String.class, transcoder); assertEquals(transcoder, factories.get(File.class, String.class)); } @Test public void testDoesNotThrowIfRequestCanBeSatisfiedByUnitTranscoder() { // Assignable from. assertNotNull(factories.get(Integer.class, Number.class)); // Equal to. assertNotNull(factories.get(Integer.class, Integer.class)); } @Test(expected = IllegalArgumentException.class) public void testThrowsIfNoTranscoderRegistered() { factories.get(File.class, Integer.class); } }