summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java
new file mode 100644
index 0000000000..e05190cd57
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/MapboxTest.java
@@ -0,0 +1,95 @@
+package com.mapbox.mapboxsdk;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+
+import com.mapbox.mapboxsdk.exceptions.MapboxConfigurationException;
+import com.mapbox.mapboxsdk.location.LocationSource;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+
+import static junit.framework.TestCase.assertNotNull;
+import static junit.framework.TestCase.assertSame;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class MapboxTest {
+
+ private Context context;
+ private Context appContext;
+ private LocationSource locationSource;
+
+ @Before
+ public void before() {
+ context = mock(Context.class);
+ appContext = mock(Context.class);
+ locationSource = mock(LocationSource.class);
+ when(context.getApplicationContext()).thenReturn(appContext);
+ }
+
+ @Test
+ public void testGetAccessToken() {
+ final String accessToken = "pk.0000000001";
+ injectMapboxSingleton(accessToken);
+ assertSame(accessToken, Mapbox.getAccessToken());
+ }
+
+ @Test(expected = MapboxConfigurationException.class)
+ public void testGetInvalidAccessToken() {
+ final String accessToken = "dummy";
+ injectMapboxSingleton(accessToken);
+ assertSame(accessToken, Mapbox.getAccessToken());
+ }
+
+ @Test
+ public void testApplicationContext() {
+ injectMapboxSingleton("dummy");
+ assertNotNull(Mapbox.getApplicationContext());
+ assertNotEquals(context, appContext);
+ assertEquals(appContext, appContext);
+ }
+
+ @Test
+ public void testConnected() {
+ injectMapboxSingleton("dummy");
+
+ // test Android connectivity
+ ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
+ NetworkInfo networkInfo = mock(NetworkInfo.class);
+ when(appContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(connectivityManager);
+ when(connectivityManager.getActiveNetworkInfo()).thenReturn(networkInfo);
+ when(networkInfo.isConnected()).thenReturn(false);
+ assertFalse(Mapbox.isConnected());
+ when(networkInfo.isConnected()).thenReturn(true);
+ assertTrue(Mapbox.isConnected());
+
+ // test manual connectivity
+ Mapbox.setConnected(true);
+ assertTrue(Mapbox.isConnected());
+ Mapbox.setConnected(false);
+ assertFalse(Mapbox.isConnected());
+
+ // reset to Android connectivity
+ Mapbox.setConnected(null);
+ assertTrue(Mapbox.isConnected());
+ }
+
+ private void injectMapboxSingleton(String accessToken) {
+ Mapbox mapbox = new Mapbox(appContext, accessToken, locationSource);
+ try {
+ Field field = Mapbox.class.getDeclaredField("INSTANCE");
+ field.setAccessible(true);
+ field.set(mapbox, mapbox);
+ } catch (Exception exception) {
+ throw new AssertionError();
+ }
+ }
+}