summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java
new file mode 100644
index 0000000000..bc64379263
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java
@@ -0,0 +1,64 @@
+package com.mapbox.mapboxsdk.location;
+
+import android.hardware.Sensor;
+import android.hardware.SensorManager;
+import android.view.WindowManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import static junit.framework.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CompassEngineTest {
+
+ private LocationComponentCompassEngine compassEngine;
+
+ @Mock
+ private WindowManager windowManager;
+
+ @Mock
+ private SensorManager sensorManager;
+
+ @Before
+ public void setUp() throws Exception {
+ compassEngine = new LocationComponentCompassEngine(windowManager, sensorManager);
+ }
+
+ @Test
+ public void lastKnownCompassBearingAccuracyDefault() {
+ assertEquals("Last accuracy should match", compassEngine.getLastAccuracySensorStatus(), 0);
+ }
+
+ @Test
+ public void lastKnownCompassAccuracyStatusValue() {
+ Sensor sensor = mock(Sensor.class);
+ compassEngine.onAccuracyChanged(sensor, 2);
+ assertEquals("Last accuracy should match", compassEngine.getLastAccuracySensorStatus(), 2);
+ }
+
+ @Test
+ public void whenGyroscopeIsNull_fallbackToGravity() {
+ SensorManager sensorManager = mock(SensorManager.class);
+ when(sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE)).thenReturn(null);
+ new LocationComponentCompassEngine(windowManager, sensorManager);
+
+ verify(sensorManager, times(1)).getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+ }
+
+ @Test
+ public void whenGyroscopeIsNull_fallbackToMagneticField() {
+ SensorManager sensorManager = mock(SensorManager.class);
+ when(sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE)).thenReturn(null);
+ new LocationComponentCompassEngine(windowManager, sensorManager);
+
+ verify(sensorManager, times(1)).getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
+ }
+}