diff options
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.java | 60 |
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(); } } |