package com.bumptech.glide.manager; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE, sdk = 18) public class DefaultConnectivityMonitorFactoryTest { private ConnectivityMonitorFactory factory; @Before public void setUp() { factory = new DefaultConnectivityMonitorFactory(); } @Test public void testReturnsDefaultConnectivityMonitorWhenHasPermission() { ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_NETWORK_STATE"); ConnectivityMonitor connectivityMonitor = factory.build(RuntimeEnvironment.application, mock(ConnectivityMonitor.ConnectivityListener.class)); assertThat(connectivityMonitor).isInstanceOf(DefaultConnectivityMonitor.class); } @Test public void testReturnsNullConnectivityMonitorWhenDoesNotHavePermission() { ConnectivityMonitor connectivityMonitor = factory.build(RuntimeEnvironment.application, mock(ConnectivityMonitor.ConnectivityListener.class)); assertThat(connectivityMonitor).isInstanceOf(NullConnectivityMonitor.class); } }