package com.bumptech.glide.load.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import com.bumptech.glide.Priority; import com.bumptech.glide.load.Options; import com.bumptech.glide.load.data.DataFetcher; import java.io.IOException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @RunWith(JUnit4.class) public class ByteArrayLoaderTest { @Mock ByteArrayLoader.Converter<Object> converter; @Mock DataFetcher.DataCallback<Object> callback; private ByteArrayLoader<Object> loader; private Options options; @Before public void setUp() { MockitoAnnotations.initMocks(this); loader = new ByteArrayLoader<>(converter); options = new Options(); } @Test public void testCanHandleByteArray() { byte[] data = new byte[10]; DataFetcher<Object> fetcher = loader.buildLoadData(data, -1, -1, options).fetcher; assertNotNull(fetcher); } @Test public void testFetcherReturnsObjectReceivedFromConverter() throws IOException { byte[] data = "fake".getBytes(); Object expected = new Object(); when(converter.convert(eq(data))).thenReturn(expected); loader.buildLoadData(data, 10, 10, options).fetcher.loadData(Priority.HIGH, callback); verify(callback).onDataReady(eq(expected)); } @Test public void testFetcherReturnsDataClassFromConverter() { when(converter.getDataClass()).thenReturn(Object.class); assertEquals(Object.class, loader.buildLoadData(new byte[10], 10, 10, options).fetcher.getDataClass()); } }