aboutsummaryrefslogtreecommitdiff
path: root/library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java')
-rw-r--r--library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java60
1 files changed, 59 insertions, 1 deletions
diff --git a/library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java b/library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java
index cd82077e..62febe60 100644
--- a/library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java
+++ b/library/src/test/java/com/bumptech/glide/manager/LifecycleRequestManagerTest.java
@@ -1,24 +1,37 @@
package com.bumptech.glide.manager;
+import android.content.Context;
import com.bumptech.glide.request.Request;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+@RunWith(RobolectricTestRunner.class)
public class LifecycleRequestManagerTest {
private LifecycleRequestManager manager;
+ private ConnectivityMonitor connectivityMonitor;
@Before
public void setUp() {
- manager = new LifecycleRequestManager();
+ connectivityMonitor = mock(ConnectivityMonitor.class);
+ ConnectivityMonitorFactory factory = mock(ConnectivityMonitorFactory.class);
+ when(factory.build(any(Context.class), any(ConnectivityMonitor.ConnectivityListener.class)))
+ .thenReturn(connectivityMonitor);
+ manager = new LifecycleRequestManager(Robolectric.application, factory);
}
@Test
public void testCancelsRequestsOnStop() {
+ manager.onStart();
Request request = mock(Request.class);
manager.addRequest(request);
manager.onStop();
@@ -28,6 +41,7 @@ public class LifecycleRequestManagerTest {
@Test
public void testCanAddAndRemoveRequest() {
+ manager.onStart();
Request request = mock(Request.class);
manager.addRequest(request);
manager.removeRequest(request);
@@ -39,6 +53,7 @@ public class LifecycleRequestManagerTest {
@Test
public void testCanAddMultipleRequests() {
+ manager.onStart();
Request first = mock(Request.class);
Request second = mock(Request.class);
manager.addRequest(first);
@@ -52,6 +67,7 @@ public class LifecycleRequestManagerTest {
@Test
public void testDoesNotClearCompleteRequestsOnStop() {
+ manager.onStart();
Request request = mock(Request.class);
when(request.isComplete()).thenReturn(true);
manager.addRequest(request);
@@ -63,6 +79,7 @@ public class LifecycleRequestManagerTest {
@Test
public void testDoesNotClearFailedRequestsOnStop() {
+ manager.onStart();
Request request = mock(Request.class);
when(request.isFailed()).thenReturn(true);
manager.addRequest(request);
@@ -131,6 +148,47 @@ public class LifecycleRequestManagerTest {
verify(first).clear();
verify(second).clear();
verify(third).clear();
+ }
+
+ @Test
+ public void testRegistersConnectivityReceiverWhenConstructed() {
+ verify(connectivityMonitor).register();
+ }
+ @Test
+ public void testRegistersConnectivityReceiverOnStart() {
+ manager.onStart();
+
+ verify(connectivityMonitor, times(2)).register();
+ }
+
+ @Test
+ public void testUnregistersConnectivityReceiverOnStop() {
+ manager.onStop();
+
+ verify(connectivityMonitor).unregister();
+ }
+
+ @Test
+ public void testRestartsFailedRequestOnConnected() {
+ Request request = mock(Request.class);
+ when(request.isFailed()).thenReturn(true);
+ manager.addRequest(request);
+
+ manager.onConnectivityChanged(true);
+
+ verify(request).run();
+ }
+
+ @Test
+ public void testCancelsAndRestartsNotYetFinishedRequestsWhenBecomesConnected() {
+ Request request = mock(Request.class);
+ when(request.isComplete()).thenReturn(false);
+ manager.addRequest(request);
+
+ manager.onConnectivityChanged(true);
+
+ verify(request).clear();
+ verify(request).run();
}
}