aboutsummaryrefslogtreecommitdiff
path: root/library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java')
-rw-r--r--library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java66
1 files changed, 19 insertions, 47 deletions
diff --git a/library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java b/library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java
index a50a4ab0..647e432b 100644
--- a/library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java
+++ b/library/src/test/java/com/bumptech/glide/load/engine/SourceResourceRunnerTest.java
@@ -1,7 +1,7 @@
package com.bumptech.glide.load.engine;
-import com.bumptech.glide.load.CacheLoader;
import com.bumptech.glide.Priority;
+import com.bumptech.glide.load.CacheLoader;
import com.bumptech.glide.load.Encoder;
import com.bumptech.glide.load.Key;
import com.bumptech.glide.load.ResourceDecoder;
@@ -11,6 +11,7 @@ import com.bumptech.glide.load.data.DataFetcher;
import com.bumptech.glide.load.engine.cache.DiskCache;
import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
import com.bumptech.glide.request.ResourceCallback;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -19,14 +20,12 @@ import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyObject;
@@ -80,18 +79,11 @@ public class SourceResourceRunnerTest {
final SourceResourceRunner<Object, Object, Object> runner = harness.getRunner();
when(harness.cacheLoader.load(eq(harness.originalKey), eq(harness.cacheDecoder), eq(harness.width),
eq(harness.height))).thenReturn(harness.decoded);
- final OutputStream expected = new ByteArrayOutputStream();
- doAnswer(new Answer<Object>() {
- @Override
- public Object answer(InvocationOnMock invocation) throws Throwable {
- runner.write(expected);
- return null;
- }
- }).when(harness.diskCache).put(eq(harness.key), eq(runner));
+ when(harness.factory.build(eq(harness.encoder), eq(harness.transformed))).thenReturn(harness.writer);
runner.run();
- verify(harness.encoder).encode(eq(harness.transformed), eq(expected));
+ verify(harness.diskCache).put(eq(harness.key), eq(harness.writer));
}
@Test
@@ -129,13 +121,11 @@ public class SourceResourceRunnerTest {
InputStream is = new ByteArrayInputStream(new byte[0]);
when(harness.fetcher.loadData(eq(harness.priority))).thenReturn(is);
when(harness.decoder.decode(eq(is), eq(harness.width), eq(harness.height))).thenReturn(harness.decoded);
-
- final OutputStream expected = new ByteArrayOutputStream();
+ when(harness.factory.build(eq(harness.encoder), eq(harness.transformed))).thenReturn(harness.writer);
runner.run();
- runner.write(expected);
- verify(harness.encoder).encode(eq(harness.transformed), eq(expected));
+ verify(harness.diskCache).put(eq(harness.key), eq(harness.writer));
}
@Test
@@ -144,15 +134,13 @@ public class SourceResourceRunnerTest {
InputStream is = new ByteArrayInputStream(new byte[0]);
when(harness.fetcher.loadData(eq(harness.priority))).thenReturn(is);
when(harness.decoder.decode(eq(is), eq(harness.width), eq(harness.height))).thenReturn(harness.decoded);
- Resource transformed = mock(Resource.class);
when(harness.transformation.transform(eq(harness.decoded), eq(harness.width), eq(harness.height)))
- .thenReturn(transformed);
+ .thenReturn(harness.transformed);
+ when(harness.factory.build(eq(harness.encoder), eq(harness.transformed))).thenReturn(harness.writer);
- OutputStream expected = new ByteArrayOutputStream();
runner.run();
- runner.write(expected);
- verify(harness.encoder).encode(eq(transformed), eq(expected));
+ verify(harness.diskCache).put(eq(harness.key), eq(harness.writer));
}
@Test
@@ -252,16 +240,6 @@ public class SourceResourceRunnerTest {
}
@Test
- public void testReturnsEncodersWriteResultFromWrite() {
- when(harness.encoder.encode(any(Resource.class), any(OutputStream.class))).thenReturn(true);
- assertTrue(harness.getRunner().write(new ByteArrayOutputStream()));
-
- when(harness.encoder.encode(any(Resource.class), any(OutputStream.class))).thenReturn(false);
- assertFalse(harness.getRunner()
- .write(new ByteArrayOutputStream()));
- }
-
- @Test
public void testDoesNotNormallyEncodeRetrievedData() throws Exception {
Object data = new Object();
when(harness.fetcher.loadData(any(Priority.class))).thenReturn(data);
@@ -276,11 +254,11 @@ public class SourceResourceRunnerTest {
harness.cacheSource = true;
Object data = new Object();
when(harness.fetcher.loadData(any(Priority.class))).thenReturn(data);
- doAnswer(new CallWriter()).when(harness.diskCache).put(eq(harness.originalKey), any(DiskCache.Writer.class));
+ when(harness.factory.build(eq(harness.sourceEncoder), eq(data))).thenReturn(harness.sourceWriter);
harness.getRunner().run();
- verify(harness.sourceEncoder).encode(eq(data), any(OutputStream.class));
+ verify(harness.diskCache).put(eq(harness.originalKey), eq(harness.sourceWriter));
}
@Test
@@ -288,10 +266,9 @@ public class SourceResourceRunnerTest {
harness.cacheSource = true;
Object data = new Object();
when(harness.fetcher.loadData(any(Priority.class))).thenReturn(data);
- doAnswer(new CallWriter() {
+ doAnswer(new Answer() {
@Override
public Void answer(InvocationOnMock invocation) throws Throwable {
- super.answer(invocation);
when(harness.cacheLoader.load(eq(harness.originalKey), eq(harness.cacheDecoder), eq(harness.width),
eq(harness.height))).thenReturn(harness.decoded);
return null;
@@ -303,19 +280,10 @@ public class SourceResourceRunnerTest {
verify(harness.cb).onResourceReady(eq(harness.transcoded));
}
- private static class CallWriter implements Answer<Void> {
- @Override
- public Void answer(InvocationOnMock invocation) throws Throwable {
- DiskCache.Writer writer = (DiskCache.Writer) invocation.getArguments()[1];
- writer.write(new ByteArrayOutputStream());
- return null;
- }
- }
-
@SuppressWarnings("unchecked")
private static class SourceResourceHarness {
CacheLoader cacheLoader = mock(CacheLoader.class);
- ResourceDecoder<InputStream, Object> cacheDecoder = mock(ResourceDecoder.class);
+ ResourceDecoder<File, Object> cacheDecoder = mock(ResourceDecoder.class);
DataFetcher<Object> fetcher = mock(DataFetcher.class);
ResourceDecoder<Object, Object> decoder = mock(ResourceDecoder.class);
ResourceEncoder<Object> encoder = mock(ResourceEncoder.class);
@@ -327,6 +295,10 @@ public class SourceResourceRunnerTest {
Resource<Object> transformed = mock(Resource.class);
Resource<Object> transcoded = mock(Resource.class);
Transformation<Object> transformation = mock(Transformation.class);
+ SourceResourceRunner.WriterFactory factory = mock(SourceResourceRunner.WriterFactory.class);
+ SourceResourceRunner.SourceWriter<Resource<Object>> writer = mock(SourceResourceRunner.SourceWriter.class);
+ SourceResourceRunner.SourceWriter<Object> sourceWriter = mock(SourceResourceRunner.SourceWriter
+ .class);
boolean cacheSource = false;
Encoder<Object> sourceEncoder = mock(Encoder.class);
int width = 150;
@@ -337,7 +309,7 @@ public class SourceResourceRunnerTest {
public SourceResourceRunner<Object, Object, Object> getRunner() {
return new SourceResourceRunner<Object, Object, Object>(key, width, height, cacheLoader, cacheDecoder,
fetcher, cacheSource, sourceEncoder, decoder, transformation, encoder, transcoder, diskCache,
- priority, cb);
+ priority, cb, factory);
}
public SourceResourceHarness() {