summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java89
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt532
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationCameraControllerTest.java1001
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentActivationOptionsTest.java119
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentOptionsTest.java81
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentPositionManagerTest.kt130
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt453
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationLayerControllerTest.java718
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/MapboxAnimatorTest.kt43
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/UtilsTest.java28
10 files changed, 0 insertions, 3194 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
deleted file mode 100644
index bebd828118..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/CompassEngineTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import android.hardware.Sensor;
-import android.hardware.SensorEventListener;
-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 com.mapbox.mapboxsdk.location.LocationComponentCompassEngine.SENSOR_DELAY_MICROS;
-import static junit.framework.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-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;
-
- @Mock
- private Sensor compassSensor;
-
- @Mock
- private CompassListener compassListener;
-
- @Before
- public void setUp() throws Exception {
- when(sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)).thenReturn(compassSensor);
- 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);
- }
-
- @Test
- public void listener_registerOnAdd() {
- compassEngine.addCompassListener(compassListener);
- verify(sensorManager)
- .registerListener(any(SensorEventListener.class), eq(compassSensor), eq(SENSOR_DELAY_MICROS));
- }
-
- @Test
- public void listener_unregisterOnRemove() {
- compassEngine.addCompassListener(compassListener);
- compassEngine.removeCompassListener(compassListener);
- verify(sensorManager).unregisterListener(any(SensorEventListener.class), eq(compassSensor));
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt
deleted file mode 100644
index 1b927d213a..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt
+++ /dev/null
@@ -1,532 +0,0 @@
-package com.mapbox.mapboxsdk.location
-
-import android.animation.Animator
-import android.location.Location
-import android.util.SparseArray
-import android.view.animation.LinearInterpolator
-import com.mapbox.mapboxsdk.camera.CameraPosition
-import com.mapbox.mapboxsdk.geometry.LatLng
-import com.mapbox.mapboxsdk.location.LocationComponentConstants.DEFAULT_TRACKING_TILT_ANIM_DURATION
-import com.mapbox.mapboxsdk.location.LocationComponentConstants.DEFAULT_TRACKING_ZOOM_ANIM_DURATION
-import com.mapbox.mapboxsdk.location.MapboxAnimator.*
-import com.mapbox.mapboxsdk.location.modes.CameraMode
-import com.mapbox.mapboxsdk.location.modes.RenderMode
-import com.mapbox.mapboxsdk.maps.MapboxMap
-import com.mapbox.mapboxsdk.maps.Projection
-import io.mockk.*
-import junit.framework.Assert.assertEquals
-import junit.framework.Assert.assertTrue
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mockito
-import org.robolectric.RobolectricTestRunner
-
-@RunWith(RobolectricTestRunner::class)
-class LocationAnimatorCoordinatorTest {
-
- private lateinit var locationAnimatorCoordinator: LocationAnimatorCoordinator
- private val cameraPosition: CameraPosition = CameraPosition.DEFAULT
-
- private val animatorProvider: MapboxAnimatorProvider = mockk()
- private val animatorSetProvider: MapboxAnimatorSetProvider = mockk()
-
- private val projection: Projection = mockk()
-
- @Before
- fun setUp() {
- locationAnimatorCoordinator = LocationAnimatorCoordinator(projection, animatorSetProvider, animatorProvider)
- configureAnimatorProvider()
- every { projection.getMetersPerPixelAtLatitude(any()) } answers { 1.0 }
- every { animatorSetProvider.startAnimation(any(), any(), any()) } answers {}
- locationAnimatorCoordinator.updateAnimatorListenerHolders(getListenerHoldersSet(
- ANIMATOR_LAYER_LATLNG,
- ANIMATOR_CAMERA_LATLNG,
- ANIMATOR_LAYER_GPS_BEARING,
- ANIMATOR_LAYER_COMPASS_BEARING,
- ANIMATOR_CAMERA_GPS_BEARING,
- ANIMATOR_CAMERA_COMPASS_BEARING,
- ANIMATOR_LAYER_ACCURACY,
- ANIMATOR_ZOOM,
- ANIMATOR_TILT
- ))
- }
-
- private fun configureAnimatorProvider() {
- // workaround https://github.com/mockk/mockk/issues/229#issuecomment-457816131
- registerInstanceFactory { AnimationsValueChangeListener<Float> {} }
- registerInstanceFactory { AnimationsValueChangeListener<LatLng> {} }
- val previousFloatSlot = slot<Float>()
- val targetFloatSlot = slot<Float>()
- val listenerSlot = slot<MapboxAnimator.AnimationsValueChangeListener<*>>()
- val maxFpsSlot = slot<Int>()
- every {
- animatorProvider.floatAnimator(capture(previousFloatSlot), capture(targetFloatSlot), capture(listenerSlot), capture(maxFpsSlot))
- } answers {
- MapboxFloatAnimator(previousFloatSlot.captured, targetFloatSlot.captured, listenerSlot.captured, maxFpsSlot.captured)
- }
-
- val previousLatLngSlot = slot<LatLng>()
- val targetLatLngSlot = slot<LatLng>()
- every {
- animatorProvider.latLngAnimator(capture(previousLatLngSlot), capture(targetLatLngSlot), capture(listenerSlot), capture(maxFpsSlot))
- } answers {
- MapboxLatLngAnimator(previousLatLngSlot.captured, targetLatLngSlot.captured, listenerSlot.captured, maxFpsSlot.captured)
- }
-
- val callback = slot<MapboxMap.CancelableCallback>()
- every {
- animatorProvider.cameraAnimator(capture(previousFloatSlot), capture(targetFloatSlot), capture(listenerSlot), capture(callback))
- } answers {
- MapboxCameraAnimatorAdapter(previousFloatSlot.captured, targetFloatSlot.captured, listenerSlot.captured, callback.captured)
- }
- every {
- animatorProvider.cameraAnimator(capture(previousFloatSlot), capture(targetFloatSlot), capture(listenerSlot), null)
- } answers {
- MapboxCameraAnimatorAdapter(previousFloatSlot.captured, targetFloatSlot.captured, listenerSlot.captured, null)
- }
- }
-
- @Test
- fun feedNewLocation_animatorsAreCreated() {
- locationAnimatorCoordinator.feedNewLocation(Location(""), cameraPosition, false)
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_LATLNG] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_GPS_BEARING] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_LATLNG] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING] != null)
- }
-
- @Test
- fun feedNewLocation_animatorValue() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 35f
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val cameraLatLngTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_LATLNG]?.target as LatLng
- assertEquals(cameraLatLngTarget.latitude, cameraLatLngTarget.latitude)
-
- val layerLatLngTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_LATLNG]?.target as LatLng
- assertEquals(layerLatLngTarget.latitude, layerLatLngTarget.latitude)
-
- val cameraBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_GPS_BEARING]?.target as Float
- assertEquals(location.bearing, cameraBearingTarget)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(location.bearing, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_1() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 0f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns 270f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(360f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_2() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 90f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns 280f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(450f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_3() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 300f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns 450f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(-60f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_4() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 350f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns 10f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(-10f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_5() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 90f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns -280f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(90f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_animatorValue_correctRotation_6() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 270f
-
- val animator = mockk<MapboxFloatAnimator>(relaxed = true)
- every { animator.animatedValue } returns -350f
- locationAnimatorCoordinator.animatorArray.put(ANIMATOR_LAYER_GPS_BEARING, animator)
-
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(-90f, layerBearingTarget)
- }
-
- @Test
- fun feedNewLocation_isNorth_animatorsAreCreated() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 35f
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, false)
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_LATLNG] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_GPS_BEARING] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_LATLNG] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING] != null)
- }
-
- @Test
- fun feedNewLocation_isNorth_animatorValue() {
- val location = Location("")
- location.latitude = 51.0
- location.longitude = 17.0
- location.bearing = 35f
- locationAnimatorCoordinator.feedNewLocation(location, cameraPosition, true)
-
- val cameraLatLngTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_LATLNG]?.target as LatLng
- assertEquals(cameraLatLngTarget.latitude, cameraLatLngTarget.latitude)
-
- val layerLatLngTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_LATLNG]?.target as LatLng
- assertEquals(layerLatLngTarget.latitude, layerLatLngTarget.latitude)
-
- val cameraBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_GPS_BEARING]?.target as Float
- assertEquals(0f, cameraBearingTarget)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_GPS_BEARING]?.target as Float
- assertEquals(location.bearing, layerBearingTarget)
- }
-
- @Test
- fun feedNewCompassBearing_animatorsAreCreated() {
- locationAnimatorCoordinator.feedNewCompassBearing(77f, cameraPosition)
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING] != null)
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING] != null)
- }
-
- @Test
- fun feedNewCompassBearing_animatorValue() {
- val bearing = 77f
- locationAnimatorCoordinator.feedNewCompassBearing(bearing, cameraPosition)
-
- val cameraBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING]?.target as Float
- assertEquals(bearing, cameraBearingTarget)
-
- val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING]?.target as Float
- assertEquals(bearing, layerBearingTarget)
- }
-
- @Test
- fun feedNewAccuracyRadius_animatorsCreated() {
- locationAnimatorCoordinator.feedNewAccuracyRadius(150f, false)
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY] != null)
- }
-
- @Test
- fun feedNewAccuracyRadius_animatorValue() {
- val accuracy = 150f
- locationAnimatorCoordinator.feedNewAccuracyRadius(accuracy, false)
-
- val layerAccuracy = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.target as Float
- assertEquals(layerAccuracy, accuracy)
- }
-
- @Test
- fun feedNewAccuracyRadius_noAnimation_animatorsCreated() {
- locationAnimatorCoordinator.feedNewAccuracyRadius(150f, true)
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY] != null)
- }
-
- @Test
- fun feedNewAccuracyRadius_noAnimation_animatorValue() {
- val accuracy = 150f
- locationAnimatorCoordinator.feedNewAccuracyRadius(accuracy, true)
-
- val layerAccuracy = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.target as Float
- assertEquals(layerAccuracy, accuracy)
- }
-
- @Test
- fun feedNewZoomLevel_animatorsCreated() {
- locationAnimatorCoordinator.feedNewZoomLevel(
- 15.0,
- cameraPosition,
- DEFAULT_TRACKING_ZOOM_ANIM_DURATION,
- null
- )
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_ZOOM] != null)
- }
-
- @Test
- fun feedNewZoomLevel_animatorValue() {
- val zoom = 15.0f
- locationAnimatorCoordinator.feedNewZoomLevel(
- zoom.toDouble(),
- cameraPosition,
- DEFAULT_TRACKING_ZOOM_ANIM_DURATION,
- null
- )
-
- val animator = locationAnimatorCoordinator.animatorArray[ANIMATOR_ZOOM]
- assertEquals(zoom, animator.target)
- verify { animatorSetProvider.startAnimation(eq(listOf(animator)), any<LinearInterpolator>(), DEFAULT_TRACKING_ZOOM_ANIM_DURATION) }
- }
-
- @Test
- fun feedNewTiltLevel_animatorsCreated() {
- locationAnimatorCoordinator.feedNewTilt(
- 30.0,
- cameraPosition,
- DEFAULT_TRACKING_TILT_ANIM_DURATION,
- null
- )
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_TILT] != null)
- }
-
- @Test
- fun feedNewTiltLevel_animatorValue() {
- val tilt = 30.0f
- locationAnimatorCoordinator.feedNewTilt(
- tilt.toDouble(),
- cameraPosition,
- DEFAULT_TRACKING_TILT_ANIM_DURATION,
- null
- )
-
- val animator = locationAnimatorCoordinator.animatorArray[ANIMATOR_TILT]
- assertEquals(tilt, animator.target)
- verify { animatorSetProvider.startAnimation(eq(listOf(animator)), any<LinearInterpolator>(), DEFAULT_TRACKING_TILT_ANIM_DURATION) }
- }
-
- @Test
- fun cancelAllAnimators() {
- locationAnimatorCoordinator.feedNewLocation(Location(""), cameraPosition, true)
- locationAnimatorCoordinator.cancelAllAnimations()
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_LATLNG] == null)
- }
-
- @Test
- fun cancelZoomAnimators() {
- locationAnimatorCoordinator.feedNewZoomLevel(
- 15.0,
- cameraPosition,
- DEFAULT_TRACKING_ZOOM_ANIM_DURATION,
- null
- )
- locationAnimatorCoordinator.cancelZoomAnimation()
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_ZOOM] == null)
- }
-
- @Test
- fun cancelTiltAnimation() {
- locationAnimatorCoordinator.feedNewTilt(
- 30.0,
- cameraPosition,
- DEFAULT_TRACKING_TILT_ANIM_DURATION,
- null
- )
-
- locationAnimatorCoordinator.cancelTiltAnimation()
-
- assertTrue(locationAnimatorCoordinator.animatorArray[ANIMATOR_TILT] == null)
- }
-
- @Test
- fun resetAllCameraAnimations_empty() {
- locationAnimatorCoordinator.resetAllCameraAnimations(cameraPosition, false)
- assertTrue(locationAnimatorCoordinator.animatorArray.size() == 0)
- }
-
- @Test
- fun resetAllLayerAnimations_empty() {
- locationAnimatorCoordinator.resetAllLayerAnimations()
- assertTrue(locationAnimatorCoordinator.animatorArray.size() == 0)
- }
-
- @Test
- fun addNewListener() {
- val listener = Mockito.mock(AnimationsValueChangeListener::class.java)
- val holder = AnimatorListenerHolder(RenderMode.NORMAL, listener)
- val set = HashSet<AnimatorListenerHolder>().also {
- it.add(holder)
- }
- locationAnimatorCoordinator.updateAnimatorListenerHolders(set)
-
- assertTrue(locationAnimatorCoordinator.listeners.contains(listener))
- }
-
- @Test
- fun updateListeners() {
- val listener = Mockito.mock(AnimationsValueChangeListener::class.java)
- val holder = AnimatorListenerHolder(RenderMode.NORMAL, listener)
- val set = HashSet<AnimatorListenerHolder>().also {
- it.add(holder)
- }
- locationAnimatorCoordinator.updateAnimatorListenerHolders(set)
-
- val listener2 = Mockito.mock(AnimationsValueChangeListener::class.java)
- val holder2 = AnimatorListenerHolder(RenderMode.NORMAL, listener2)
- val listener3 = Mockito.mock(AnimationsValueChangeListener::class.java)
- val holder3 = AnimatorListenerHolder(CameraMode.TRACKING_GPS, listener3)
- val set2 = HashSet<AnimatorListenerHolder>().also {
- it.add(holder2)
- it.add(holder3)
- }
- locationAnimatorCoordinator.updateAnimatorListenerHolders(set2)
-
- assertTrue(locationAnimatorCoordinator.listeners.size() == 2)
- assertTrue(locationAnimatorCoordinator.listeners.contains(listener2))
- assertTrue(locationAnimatorCoordinator.listeners.contains(listener3))
- }
-
- @Test
- fun feedNewCompassBearing_withAnimation() {
- locationAnimatorCoordinator.setCompassAnimationEnabled(true)
- locationAnimatorCoordinator.feedNewCompassBearing(77f, cameraPosition)
-
- val animators = mutableListOf<Animator>(
- locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING],
- locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING])
-
- verify(exactly = 1) { animatorSetProvider.startAnimation(eq(animators), ofType(LinearInterpolator::class), eq(LocationComponentConstants.COMPASS_UPDATE_RATE_MS)) }
- }
-
- @Test
- fun feedNewCompassBearing_withoutAnimation() {
- locationAnimatorCoordinator.setCompassAnimationEnabled(false)
- locationAnimatorCoordinator.feedNewCompassBearing(77f, cameraPosition)
-
- val animators = mutableListOf<Animator>(
- locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING],
- locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING])
-
- verify(exactly = 1) { animatorSetProvider.startAnimation(eq(animators), ofType(LinearInterpolator::class), eq(0)) }
- }
-
- @Test
- fun feedNewAccuracy_withAnimation() {
- locationAnimatorCoordinator.setAccuracyAnimationEnabled(true)
- locationAnimatorCoordinator.feedNewAccuracyRadius(150f, false)
-
- val animators = mutableListOf<Animator>(
- locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY])
-
- verify(exactly = 1) { animatorSetProvider.startAnimation(eq(animators), ofType(LinearInterpolator::class), eq(LocationComponentConstants.ACCURACY_RADIUS_ANIMATION_DURATION)) }
- }
-
- @Test
- fun feedNewAccuracy_withoutAnimation() {
- locationAnimatorCoordinator.setAccuracyAnimationEnabled(false)
- locationAnimatorCoordinator.feedNewAccuracyRadius(150f, false)
-
- val animators = mutableListOf<Animator>(
- locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY])
-
- verify(exactly = 1) { animatorSetProvider.startAnimation(eq(animators), ofType(LinearInterpolator::class), eq(0)) }
- }
-
- @Test
- fun maxFps_setter() {
- locationAnimatorCoordinator.setMaxAnimationFps(5)
- assertEquals(5, locationAnimatorCoordinator.maxAnimationFps)
- }
-
- @Test
- fun maxFps_moreThanZeroRequired() {
- locationAnimatorCoordinator.setMaxAnimationFps(0)
- assertEquals(Int.MAX_VALUE, locationAnimatorCoordinator.maxAnimationFps)
- locationAnimatorCoordinator.setMaxAnimationFps(-1)
- assertEquals(Int.MAX_VALUE, locationAnimatorCoordinator.maxAnimationFps)
- }
-
- @Test
- fun maxFps_givenToAnimator() {
- locationAnimatorCoordinator.setMaxAnimationFps(5)
- locationAnimatorCoordinator.feedNewLocation(Location(""), cameraPosition, false)
- verify { animatorProvider.latLngAnimator(any(), any(), any(), 5) }
- verify { animatorProvider.floatAnimator(any(), any(), any(), 5) }
- }
-
- private fun getListenerHoldersSet(vararg animatorTypes: Int): Set<AnimatorListenerHolder> {
- return HashSet<AnimatorListenerHolder>().also {
- for (type in animatorTypes) {
- it.add(AnimatorListenerHolder(type, mockk()))
- }
- }
- }
-}
-
-private fun <E> SparseArray<E>.contains(listener: AnimationsValueChangeListener<*>?): Boolean {
- for (i in 0 until this.size()) {
- val element = this.get(this.keyAt(i))
- if (element == listener) {
- return true
- }
- }
- return false
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationCameraControllerTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationCameraControllerTest.java
deleted file mode 100644
index d1b8642c31..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationCameraControllerTest.java
+++ /dev/null
@@ -1,1001 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import android.graphics.PointF;
-import android.location.Location;
-
-import com.mapbox.android.gestures.AndroidGesturesManager;
-import com.mapbox.android.gestures.MoveGestureDetector;
-import com.mapbox.mapboxsdk.camera.CameraPosition;
-import com.mapbox.mapboxsdk.camera.CameraUpdate;
-import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-import com.mapbox.mapboxsdk.maps.Projection;
-import com.mapbox.mapboxsdk.maps.Transform;
-import com.mapbox.mapboxsdk.maps.UiSettings;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-import java.util.Set;
-
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_CAMERA_COMPASS_BEARING;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_CAMERA_GPS_BEARING;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_CAMERA_LATLNG;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_TILT;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_ZOOM;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.NONE;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.NONE_COMPASS;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.NONE_GPS;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.TRACKING;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.TRACKING_COMPASS;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.TRACKING_GPS;
-import static com.mapbox.mapboxsdk.location.modes.CameraMode.TRACKING_GPS_NORTH;
-import static junit.framework.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.doAnswer;
-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;
-
-public class LocationCameraControllerTest {
-
- @Test
- public void setCameraMode_mapTransitionsAreCancelled() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(TRACKING_GPS);
-
- verify(mapboxMap).cancelTransitions();
- }
-
- @Test
- public void setCameraMode_gestureThresholdIsAdjusted() {
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(moveGestureDetector);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- float moveThreshold = 5f;
- when(options.trackingInitialMoveThreshold()).thenReturn(moveThreshold);
- when(options.trackingGesturesManagement()).thenReturn(true);
- camera.initializeOptions(options);
-
- camera.setCameraMode(TRACKING_GPS);
-
- verify(moveGestureDetector).setMoveThreshold(moveThreshold);
- }
-
- @Test
- public void setCameraMode_gestureThresholdNotAdjustedWhenDisabled() {
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(moveGestureDetector);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- float moveThreshold = 5f;
- when(options.trackingInitialMoveThreshold()).thenReturn(moveThreshold);
- when(options.trackingGesturesManagement()).thenReturn(false);
- camera.initializeOptions(options);
-
- camera.setCameraMode(TRACKING_GPS);
-
- verify(moveGestureDetector, times(0)).setMoveThreshold(moveThreshold);
- verify(moveGestureDetector, times(0)).setMoveThreshold(0f);
- }
-
- @Test
- public void setCameraMode_gestureThresholdIsResetWhenNotTracking() {
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(moveGestureDetector);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(true);
- camera.initializeOptions(options);
-
- camera.setCameraMode(NONE);
-
- verify(moveGestureDetector, times(2)).setMoveThreshold(0f); // one for initialization
- }
-
- @Test
- public void setCameraMode_notTrackingAdjustsFocalPoint() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(TRACKING_GPS);
- camera.setCameraMode(NONE);
-
- verify(mapboxMap.getUiSettings()).setFocalPoint(null);
- }
-
- @Test
- public void setCameraMode_trackingChangeListenerCameraDismissedIsCalled() {
- OnCameraTrackingChangedListener internalTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- LocationCameraController camera = buildCamera(internalTrackingChangedListener);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(TRACKING_GPS);
- camera.setCameraMode(NONE);
-
- verify(internalTrackingChangedListener).onCameraTrackingDismissed();
- }
-
- @Test
- public void setCameraMode_internalCameraTrackingChangeListenerIsCalled() {
- OnCameraTrackingChangedListener internalTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- LocationCameraController camera = buildCamera(internalTrackingChangedListener);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- int cameraMode = NONE;
-
- camera.setCameraMode(cameraMode);
-
- verify(internalTrackingChangedListener).onCameraTrackingChanged(cameraMode);
- }
-
- @Test
- public void setCameraMode_doNotNotifyAboutDuplicates_NONE() {
- OnCameraTrackingChangedListener internalTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- LocationCameraController camera = buildCamera(internalTrackingChangedListener);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- int cameraMode = NONE;
-
- camera.setCameraMode(cameraMode);
- camera.setCameraMode(cameraMode);
-
- verify(internalTrackingChangedListener, times(1)).onCameraTrackingChanged(cameraMode);
- }
-
- @Test
- public void setCameraMode_doNotNotifyAboutDuplicates_TRACKING_GPS() {
- OnCameraTrackingChangedListener internalTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- LocationCameraController camera = buildCamera(internalTrackingChangedListener);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- int cameraMode = TRACKING_GPS;
-
- camera.setCameraMode(cameraMode);
- camera.setCameraMode(cameraMode);
-
- verify(internalTrackingChangedListener, times(1)).onCameraTrackingChanged(cameraMode);
- }
-
- @Test
- public void setCameraMode_cancelTransitionsWhenSet() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- when(mapboxMap.getProjection()).thenReturn(mock(Projection.class));
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(NONE_COMPASS);
- verify(mapboxMap, times(1)).cancelTransitions();
-
- camera.setCameraMode(NONE_GPS);
- verify(mapboxMap, times(2)).cancelTransitions();
-
- camera.setCameraMode(TRACKING);
- verify(mapboxMap, times(3)).cancelTransitions();
-
- camera.setCameraMode(TRACKING_COMPASS);
- verify(mapboxMap, times(4)).cancelTransitions();
-
- camera.setCameraMode(TRACKING_GPS);
- verify(mapboxMap, times(5)).cancelTransitions();
-
- camera.setCameraMode(TRACKING_GPS_NORTH);
- verify(mapboxMap, times(6)).cancelTransitions();
- }
-
- @Test
- public void setCameraMode_dontCancelTransitionsWhenNoneSet() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- when(mapboxMap.getProjection()).thenReturn(mock(Projection.class));
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(NONE);
- verify(mapboxMap, never()).cancelTransitions();
- }
-
- @Test
- public void onNewLatLngValue_cameraModeTrackingUpdatesLatLng() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING);
- LatLng latLng = mock(LatLng.class);
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewLatLngValue_cameraModeTrackingGpsNorthUpdatesLatLng() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_GPS_NORTH);
- LatLng latLng = mock(LatLng.class);
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewLatLngValue_cameraModeTrackingGpsUpdatesLatLng() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_GPS);
- LatLng latLng = mock(LatLng.class);
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewLatLngValue_cameraModeTrackingCompassUpdatesLatLng() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_COMPASS);
- LatLng latLng = mock(LatLng.class);
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewLatLngValue_cameraModeNoneIgnored() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(NONE);
-
- assertNull(getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()));
- verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewLatLngValue_focalPointIsAdjusted() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- UiSettings uiSettings = mock(UiSettings.class);
- when(mapboxMap.getUiSettings()).thenReturn(uiSettings);
- Projection projection = mock(Projection.class);
- PointF pointF = mock(PointF.class);
- when(projection.toScreenLocation(any(LatLng.class))).thenReturn(pointF);
- when(mapboxMap.getProjection()).thenReturn(projection);
- LocationCameraController camera = buildCamera(mapboxMap);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(true);
- camera.initializeOptions(options);
- camera.setCameraMode(TRACKING);
- LatLng latLng = mock(LatLng.class);
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
-
- verify(uiSettings).setFocalPoint(pointF);
- }
-
- @Test
- public void onNewGpsBearingValue_cameraModeTrackingGpsUpdatesBearing() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_GPS);
- float gpsBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewGpsBearingValue_cameraModeNoneGpsUpdatesBearing() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(NONE_GPS);
- float gpsBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewGpsBearingValue_cameraModeTrackingNorthUpdatesBearing() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- CameraPosition cameraPosition = new CameraPosition.Builder().bearing(7d).build();
- when(mapboxMap.getCameraPosition()).thenReturn(cameraPosition);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_GPS_NORTH);
- float gpsBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing);
-
- verify(transform).moveCamera(eq(mapboxMap), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewGpsBearingValue_cameraModeTrackingNorthBearingZeroIgnored() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- CameraPosition cameraPosition = new CameraPosition.Builder().bearing(0d).build();
- when(mapboxMap.getCameraPosition()).thenReturn(cameraPosition);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_GPS_NORTH);
- float gpsBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing);
-
- verify(transform, times(0)).moveCamera(eq(mapboxMap), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewGpsBearingValue_cameraModeNoneIgnored() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(NONE);
-
- assertNull(getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()));
- verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewCompassBearingValue_cameraModeTrackingCompassUpdatesBearing() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING_COMPASS);
- float compassBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_COMPASS_BEARING, camera.getAnimationListeners())
- .onNewAnimationValue(compassBearing);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewCompassBearingValue_cameraModeNoneCompassUpdatesBearing() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(NONE_COMPASS);
- float compassBearing = 5f;
-
- getAnimationListener(ANIMATOR_CAMERA_COMPASS_BEARING, camera.getAnimationListeners())
- .onNewAnimationValue(compassBearing);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewCompassBearingValue_cameraModeNoneIgnored() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(NONE);
-
- assertNull(getAnimationListener(ANIMATOR_CAMERA_COMPASS_BEARING, camera.getAnimationListeners()));
- verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNewZoomValue_cameraIsUpdated() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING);
- float zoom = 5f;
-
- getAnimationListener(ANIMATOR_ZOOM, camera.getAnimationListeners()).onNewAnimationValue(zoom);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void onNeTiltValue_cameraIsUpdated() {
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- camera.setCameraMode(TRACKING);
- float tilt = 5f;
-
- getAnimationListener(ANIMATOR_TILT, camera.getAnimationListeners()).onNewAnimationValue(tilt);
-
- verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void gesturesManagement_enabled() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- when(mapboxMap.getGesturesManager()).thenReturn(initialGesturesManager);
- LocationCameraController camera = buildCamera(mapboxMap, initialGesturesManager, internalGesturesManager);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(true);
- camera.initializeOptions(options);
-
- verify(mapboxMap).setGesturesManager(internalGesturesManager, true, true);
- }
-
- @Test
- public void gesturesManagement_disabled() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- when(mapboxMap.getGesturesManager()).thenReturn(internalGesturesManager);
- LocationCameraController camera = buildCamera(mapboxMap, initialGesturesManager, internalGesturesManager);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(false);
- camera.initializeOptions(options);
-
- verify(mapboxMap).setGesturesManager(initialGesturesManager, true, true);
- }
-
- @Test
- public void gesturesManagement_optionNotChangedInitial() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- when(mapboxMap.getGesturesManager()).thenReturn(initialGesturesManager);
- LocationCameraController camera = buildCamera(mapboxMap, initialGesturesManager, internalGesturesManager);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(false);
- camera.initializeOptions(options);
-
- verify(mapboxMap, times(0)).setGesturesManager(initialGesturesManager, true, true);
- }
-
- @Test
- public void gesturesManagement_optionNotChangedInternal() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- when(mapboxMap.getGesturesManager()).thenReturn(internalGesturesManager);
- LocationCameraController camera = buildCamera(mapboxMap, initialGesturesManager, internalGesturesManager);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.trackingGesturesManagement()).thenReturn(true);
- camera.initializeOptions(options);
-
- verify(mapboxMap, times(0)).setGesturesManager(internalGesturesManager, true, true);
- }
-
- @Test
- public void onMove_notCancellingTransitionWhileNone() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(NONE);
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(0)).cancelTransitions();
- verify(moveGestureDetector, times(0)).interrupt();
-
- // testing subsequent calls
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(0)).cancelTransitions();
- verify(moveGestureDetector, times(0)).interrupt();
- }
-
- @Test
- public void onMove_cancellingTransitionWhileGps() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(TRACKING);
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(1)).cancelTransitions();
- verify(moveGestureDetector, times(1)).interrupt();
-
- // testing subsequent calls
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(1)).cancelTransitions();
- verify(moveGestureDetector, times(1)).interrupt();
- }
-
- @Test
- public void onMove_cancellingTransitionWhileBearing() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- LocationCameraController camera = buildCamera(mapboxMap);
- camera.initializeOptions(mock(LocationComponentOptions.class));
-
- camera.setCameraMode(NONE_COMPASS);
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(1)).cancelTransitions();
- verify(moveGestureDetector, times(1)).interrupt();
-
- // testing subsequent calls
- camera.onMoveListener.onMove(moveGestureDetector);
- verify(mapboxMap, times(1)).cancelTransitions();
- verify(moveGestureDetector, times(1)).interrupt();
- }
-
- @Test
- public void transition_locationIsNull() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
-
- camera.setCameraMode(TRACKING, null, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
- Assert.assertEquals(TRACKING, camera.getCameraMode());
- verify(listener).onLocationCameraTransitionFinished(TRACKING);
- verify(transform, times(0))
- .animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_notTracking() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
-
- camera.setCameraMode(NONE, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
- verify(listener, times(1)).onLocationCameraTransitionFinished(NONE);
- verify(transform, times(0))
- .animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_trackingChanged() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
-
- doAnswer(new Answer<Void>() {
- @Override
- public Void answer(InvocationOnMock invocation) throws Throwable {
- listener.onLocationCameraTransitionFinished(TRACKING);
- return null;
- }
- }).when(transform).animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
- verify(listener).onLocationCameraTransitionFinished(TRACKING);
- verify(transform)
- .animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_trackingNotChanged() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- doAnswer(new Answer<Void>() {
- @Override
- public Void answer(InvocationOnMock invocation) throws Throwable {
- listener.onLocationCameraTransitionFinished(TRACKING_GPS_NORTH);
- return null;
- }
- }).when(transform).animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
-
- camera.setCameraMode(TRACKING_GPS_NORTH, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
- verify(listener, times(1)).onLocationCameraTransitionFinished(TRACKING_GPS_NORTH);
- verify(transform, times(1))
- .animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_canceled() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
-
- doAnswer(new Answer<Void>() {
- @Override
- public Void answer(InvocationOnMock invocation) throws Throwable {
- listener.onLocationCameraTransitionCanceled(TRACKING);
- return null;
- }
- }).when(transform).animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
- verify(listener).onLocationCameraTransitionCanceled(TRACKING);
- verify(transform)
- .animateCamera(eq(mapboxMap), any(CameraUpdate.class), any(Integer.class),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_mapboxCallbackFinished() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
- when(location.getLatitude()).thenReturn(1.0);
- when(location.getLongitude()).thenReturn(1.0);
- when(location.getBearing()).thenReturn(30f);
- when(location.getAltitude()).thenReturn(0.0);
-
- ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor
- = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class);
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location));
- verify(transform).animateCamera(
- eq(mapboxMap),
- eq(CameraUpdateFactory.newCameraPosition(builder.build())),
- eq((int) TRANSITION_ANIMATION_DURATION_MS),
- callbackCaptor.capture());
-
- Assert.assertTrue(camera.isTransitioning());
-
- callbackCaptor.getValue().onFinish();
-
- Assert.assertFalse(camera.isTransitioning());
-
- verify(listener).onLocationCameraTransitionFinished(TRACKING);
- }
-
- @Test
- public void transition_mapboxCallbackFinishedImmediately() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
- when(location.getLatitude()).thenReturn(1.0);
- when(location.getLongitude()).thenReturn(1.0);
- when(location.getBearing()).thenReturn(30f);
- when(location.getAltitude()).thenReturn(0.0);
-
- ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor
- = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class);
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location));
- verify(transform).moveCamera(
- eq(mapboxMap),
- eq(CameraUpdateFactory.newCameraPosition(builder.build())),
- callbackCaptor.capture());
-
- Assert.assertTrue(camera.isTransitioning());
-
- callbackCaptor.getValue().onFinish();
-
- Assert.assertFalse(camera.isTransitioning());
-
- verify(listener).onLocationCameraTransitionFinished(TRACKING);
- }
-
- @Test
- public void transition_mapboxCallbackCanceled() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
- when(location.getLatitude()).thenReturn(1.0);
- when(location.getLongitude()).thenReturn(1.0);
- when(location.getBearing()).thenReturn(30f);
- when(location.getAltitude()).thenReturn(0.0);
-
- ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor
- = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class);
-
- camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location));
- verify(transform).animateCamera(
- eq(mapboxMap),
- eq(CameraUpdateFactory.newCameraPosition(builder.build())),
- eq((int) TRANSITION_ANIMATION_DURATION_MS),
- callbackCaptor.capture());
-
- Assert.assertTrue(camera.isTransitioning());
-
- callbackCaptor.getValue().onCancel();
-
- Assert.assertFalse(camera.isTransitioning());
-
- verify(listener).onLocationCameraTransitionCanceled(TRACKING);
- }
-
- @Test
- public void transition_mapboxAnimateBearing() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
- when(location.getLatitude()).thenReturn(1.0);
- when(location.getLongitude()).thenReturn(1.0);
- when(location.getBearing()).thenReturn(30f);
- when(location.getAltitude()).thenReturn(0.0);
-
- camera.setCameraMode(TRACKING_GPS, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location)).bearing(30);
- verify(transform).animateCamera(
- eq(mapboxMap),
- eq(CameraUpdateFactory.newCameraPosition(builder.build())),
- eq((int) TRANSITION_ANIMATION_DURATION_MS),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_mapboxAnimateNorth() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
- when(location.getLatitude()).thenReturn(1.0);
- when(location.getLongitude()).thenReturn(1.0);
- when(location.getBearing()).thenReturn(30f);
- when(location.getAltitude()).thenReturn(0.0);
-
- camera.setCameraMode(TRACKING_GPS_NORTH, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location)).bearing(0);
- verify(transform).animateCamera(
- eq(mapboxMap),
- eq(CameraUpdateFactory.newCameraPosition(builder.build())),
- eq((int) TRANSITION_ANIMATION_DURATION_MS),
- any(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_animatorValuesDuringTransition() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class);
- Location location = mock(Location.class);
-
- ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor
- = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class);
-
- camera.setCameraMode(TRACKING_GPS, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener);
-
- verify(transform).animateCamera(
- eq(mapboxMap),
- any(CameraUpdate.class),
- eq((int) TRANSITION_ANIMATION_DURATION_MS),
- callbackCaptor.capture());
-
- LatLng latLng = new LatLng(10, 10);
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(10f);
- getAnimationListener(ANIMATOR_TILT, camera.getAnimationListeners()).onNewAnimationValue(10f);
- getAnimationListener(ANIMATOR_ZOOM, camera.getAnimationListeners()).onNewAnimationValue(10f);
-
- verify(transform, times(0)).moveCamera(eq(mapboxMap), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
-
- callbackCaptor.getValue().onFinish();
-
- getAnimationListener(ANIMATOR_CAMERA_LATLNG, camera.getAnimationListeners()).onNewAnimationValue(latLng);
- getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(10f);
- getAnimationListener(ANIMATOR_TILT, camera.getAnimationListeners()).onNewAnimationValue(10f);
- getAnimationListener(ANIMATOR_ZOOM, camera.getAnimationListeners()).onNewAnimationValue(10f);
-
- verify(transform, times(4)).moveCamera(eq(mapboxMap), any(CameraUpdate.class),
- nullable(MapboxMap.CancelableCallback.class));
- }
-
- @Test
- public void transition_customAnimation() {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- Transform transform = mock(Transform.class);
- when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- LocationCameraController camera = buildCamera(mapboxMap, transform);
- camera.initializeOptions(mock(LocationComponentOptions.class));
- Location location = mock(Location.class);
- CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(
- new CameraPosition.Builder()
- .target(new LatLng(location))
- .zoom(14.0)
- .bearing(13.0)
- .tilt(45.0)
- .build()
- );
-
- camera.setCameraMode(TRACKING, location, 1200, 14.0, 13.0, 45.0, null);
- verify(transform)
- .animateCamera(eq(mapboxMap), eq(cameraUpdate), eq(1200), any(MapboxMap.CancelableCallback.class));
- }
-
- private LocationCameraController buildCamera(OnCameraTrackingChangedListener onCameraTrackingChangedListener) {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- Transform transform = mock(Transform.class);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private LocationCameraController buildCamera(MoveGestureDetector moveGestureDetector) {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- Transform transform = mock(Transform.class);
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- OnCameraTrackingChangedListener onCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private LocationCameraController buildCamera(MapboxMap mapboxMap) {
- Transform transform = mock(Transform.class);
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- OnCameraTrackingChangedListener onCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private LocationCameraController buildCamera(Transform transform) {
- MapboxMap mapboxMap = mock(MapboxMap.class);
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- Projection projection = mock(Projection.class);
- when(mapboxMap.getProjection()).thenReturn(projection);
- when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- OnCameraTrackingChangedListener onCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private LocationCameraController buildCamera(MapboxMap mapboxMap, Transform transform) {
- when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- OnCameraTrackingChangedListener onCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
- AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private LocationCameraController buildCamera(MapboxMap mapboxMap, AndroidGesturesManager initialGesturesManager,
- AndroidGesturesManager internalGesturesManager) {
- Transform transform = mock(Transform.class);
- MoveGestureDetector moveGestureDetector = mock(MoveGestureDetector.class);
- OnCameraTrackingChangedListener onCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener.class);
- OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
- return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
- onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
- }
-
- private <T> MapboxAnimator.AnimationsValueChangeListener<T> getAnimationListener(
- @MapboxAnimator.Type int animatorType,
- Set<AnimatorListenerHolder> holders) {
- for (AnimatorListenerHolder holder : holders) {
- @MapboxAnimator.Type int type = holder.getAnimatorType();
- if (type == animatorType) {
- return holder.getListener();
- }
- }
-
- return null;
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentActivationOptionsTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentActivationOptionsTest.java
deleted file mode 100644
index 2660c819d4..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentActivationOptionsTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.support.annotation.NonNull;
-
-import com.mapbox.mapboxsdk.R;
-import com.mapbox.mapboxsdk.maps.Style;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.mockito.junit.MockitoRule;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.when;
-
-@RunWith(MockitoJUnitRunner.class)
-public class LocationComponentActivationOptionsTest {
-
- @Mock
- private Context context;
- @Mock
- private TypedArray array;
- @Mock
- private Resources resources;
- @Mock
- private Style style;
-
- @Rule
- public MockitoRule mockitoRule = MockitoJUnit.rule();
-
- @NonNull
- @Rule
- public ExpectedException thrown = ExpectedException.none();
-
- @Before
- public void setUp() throws Exception {
- when(context.obtainStyledAttributes(R.style.mapbox_LocationComponent, R.styleable.mapbox_LocationComponent))
- .thenReturn(array);
- when(array.getResourceId(R.styleable.mapbox_LocationComponent_mapbox_foregroundDrawable, -1))
- .thenReturn(R.drawable.mapbox_user_icon);
- when(context.getResources()).thenReturn(resources);
- }
-
- @Test
- public void sanity() throws Exception {
- when(style.isFullyLoaded()).thenReturn(true);
-
- LocationComponentOptions locationComponentOptions = LocationComponentOptions.builder(context)
- .accuracyAlpha(0.5f)
- .build();
- assertNotNull(locationComponentOptions);
-
- LocationComponentActivationOptions locationComponentActivationOptions =
- LocationComponentActivationOptions.builder(context, style)
- .locationComponentOptions(locationComponentOptions)
- .useDefaultLocationEngine(true)
- .build();
- assertNotNull(locationComponentActivationOptions);
- }
-
- @Test
- public void includingBothStyleResAndComponentOptions_causesExceptionToBeThrown() throws Exception {
-
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("You've provided both a style resource and a LocationComponentOptions"
- + " object to the LocationComponentActivationOptions builder. You can't use both and "
- + "you must choose one of the two to style the LocationComponent.");
-
- LocationComponentOptions locationComponentOptions = LocationComponentOptions.builder(context)
- .accuracyAlpha(0.5f)
- .build();
-
- LocationComponentActivationOptions.builder(context, style)
- .locationComponentOptions(locationComponentOptions)
- .styleRes(R.style.mapbox_LocationComponent)
- .build();
- }
-
- @Test
- public void nullContext_causesExceptionToBeThrown() throws Exception {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("Context in LocationComponentActivationOptions is null.");
-
- LocationComponentActivationOptions.builder(null, style)
- .build();
- }
-
- @Test
- public void nullStyle_causesExceptionToBeThrown() throws Exception {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("Style in LocationComponentActivationOptions is null. Make sure the Style object isn't null."
- + " Wait for the map to fully load before passing the Style object to LocationComponentActivationOptions.");
-
- LocationComponentActivationOptions.builder(context, null)
- .build();
- }
-
- @Test
- public void locationComponent_exceptionThrownWithDefaultLocationEngineButNotFullyLoadedStyle() throws Exception {
-
- when(style.isFullyLoaded()).thenReturn(false);
-
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Style in LocationComponentActivationOptions isn't fully loaded. Wait for the "
- + "map to fully load before passing the Style object to "
- + "LocationComponentActivationOptions.");
-
- LocationComponentActivationOptions.builder(context, style)
- .build();
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentOptionsTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentOptionsTest.java
deleted file mode 100644
index b1e1f14cb1..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentOptionsTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-
-import android.support.annotation.NonNull;
-import com.mapbox.mapboxsdk.R;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.when;
-
-@RunWith(MockitoJUnitRunner.class)
-public class LocationComponentOptionsTest {
-
- @Mock
- private Context context;
- @Mock
- private TypedArray array;
- @Mock
- private Resources resources;
-
- @NonNull
- @Rule
- public ExpectedException thrown = ExpectedException.none();
-
- @Before
- public void setUp() throws Exception {
- when(context.obtainStyledAttributes(R.style.mapbox_LocationComponent, R.styleable.mapbox_LocationComponent))
- .thenReturn(array);
- when(array.getResourceId(R.styleable.mapbox_LocationComponent_mapbox_foregroundDrawable, -1))
- .thenReturn(R.drawable.mapbox_user_icon);
- when(context.getResources()).thenReturn(resources);
- }
-
- @Test
- public void sanity() throws Exception {
- LocationComponentOptions locationComponentOptions = LocationComponentOptions.builder(context)
- .accuracyAlpha(0.5f)
- .build();
- assertNotNull(locationComponentOptions);
- }
-
- @Test
- public void passingOutOfRangeAccuracyAlpha_throwsException() throws Exception {
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Accuracy alpha value must be between 0.0 and "
- + "1.0.");
- LocationComponentOptions.builder(context)
- .accuracyAlpha(2f)
- .build();
- }
-
- @Test
- public void negativeElevation_causesExceptionToBeThrown() throws Exception {
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid shadow size -500.0. Must be >= 0");
- LocationComponentOptions.builder(context)
- .elevation(-500)
- .build();
- }
-
- @Test
- public void passingBothLayerPositionOptions_throwsException() throws Exception {
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("You cannot set both layerAbove and layerBelow options."
- + "Choose one or the other.");
- LocationComponentOptions.builder(context)
- .layerAbove("above")
- .layerBelow("below")
- .build();
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentPositionManagerTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentPositionManagerTest.kt
deleted file mode 100644
index c8a75b6701..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentPositionManagerTest.kt
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.mapbox.mapboxsdk.location
-
-import com.mapbox.mapboxsdk.maps.Style
-import com.mapbox.mapboxsdk.style.layers.Layer
-import io.mockk.mockk
-import io.mockk.verify
-import junit.framework.Assert.assertFalse
-import junit.framework.Assert.assertTrue
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.junit.MockitoJUnitRunner
-
-@RunWith(MockitoJUnitRunner::class)
-class LocationComponentPositionManagerTest {
-
- private lateinit var style: Style
- private lateinit var layer: Layer
-
- @Before
- fun setup() {
- style = mockk(relaxed = true)
- layer = mockk(relaxed = true)
- }
-
- @Test
- fun update_noChange_null() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- val requiresUpdate = positionManager.update(null, null)
- assertFalse(requiresUpdate)
- }
-
- @Test
- fun update_noChange_above() {
- val positionManager = LocationComponentPositionManager(style, "above", null)
- val requiresUpdate = positionManager.update("above", null)
- assertFalse(requiresUpdate)
- }
-
- @Test
- fun update_noChange_below() {
- val positionManager = LocationComponentPositionManager(style, null, "below")
- val requiresUpdate = positionManager.update(null, "below")
- assertFalse(requiresUpdate)
- }
-
- @Test
- fun update_fromNull_above() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- val requiresUpdate = positionManager.update("above", null)
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun update_fromNull_below() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- val requiresUpdate = positionManager.update(null, "below")
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun update_toNull_above() {
- val positionManager = LocationComponentPositionManager(style, "above", null)
- val requiresUpdate = positionManager.update(null, null)
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun update_toNull_below() {
- val positionManager = LocationComponentPositionManager(style, null, "below")
- val requiresUpdate = positionManager.update(null, null)
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun update_fromValue_above() {
- val positionManager = LocationComponentPositionManager(style, "above1", null)
- val requiresUpdate = positionManager.update("above2", null)
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun update_fromValue_below() {
- val positionManager = LocationComponentPositionManager(style, null, "below1")
- val requiresUpdate = positionManager.update(null, "below2")
- assertTrue(requiresUpdate)
- }
-
- @Test
- fun addLayer_noModifier() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- positionManager.addLayerToMap(layer)
-
- verify { style.addLayer(layer) }
- }
-
- @Test
- fun addLayer_above() {
- val positionManager = LocationComponentPositionManager(style, "above", null)
- positionManager.addLayerToMap(layer)
-
- verify { style.addLayerAbove(layer, "above") }
- }
-
- @Test
- fun addLayer_below() {
- val positionManager = LocationComponentPositionManager(style, null, "below")
- positionManager.addLayerToMap(layer)
-
- verify { style.addLayerBelow(layer, "below") }
- }
-
- @Test
- fun addLayer_afterUpdate_above() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- positionManager.update("above", null)
- positionManager.addLayerToMap(layer)
-
- verify { style.addLayerAbove(layer, "above") }
- }
-
- @Test
- fun addLayer_afterUpdate_below() {
- val positionManager = LocationComponentPositionManager(style, null, null)
- positionManager.update(null, "below")
- positionManager.addLayerToMap(layer)
-
- verify { style.addLayerBelow(layer, "below") }
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt
deleted file mode 100644
index 2994c29d5b..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt
+++ /dev/null
@@ -1,453 +0,0 @@
-package com.mapbox.mapboxsdk.location
-
-import android.content.Context
-import android.content.res.Resources
-import android.content.res.TypedArray
-import android.location.Location
-import android.os.Looper
-import com.mapbox.android.core.location.LocationEngine
-import com.mapbox.android.core.location.LocationEngineRequest
-import com.mapbox.mapboxsdk.R
-import com.mapbox.mapboxsdk.camera.CameraPosition
-import com.mapbox.mapboxsdk.location.LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS
-import com.mapbox.mapboxsdk.location.modes.CameraMode
-import com.mapbox.mapboxsdk.location.modes.RenderMode
-import com.mapbox.mapboxsdk.maps.MapboxMap
-import com.mapbox.mapboxsdk.maps.Style
-import com.mapbox.mapboxsdk.maps.Transform
-import org.junit.Assert
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mock
-import org.mockito.Mockito.*
-import org.mockito.MockitoAnnotations
-import org.robolectric.RobolectricTestRunner
-
-@RunWith(RobolectricTestRunner::class)
-class LocationComponentTest {
- private lateinit var locationComponent: LocationComponent
-
- @Mock
- private lateinit var locationComponentOptions: LocationComponentOptions
-
- @Mock
- private lateinit var mapboxMap: MapboxMap
-
- @Mock
- private lateinit var transform: Transform
-
- @Mock
- private lateinit var context: Context
-
- @Mock
- private lateinit var locationEngine: LocationEngine
-
- @Mock
- private lateinit var locationEngineRequest: LocationEngineRequest
-
- @Mock
- private lateinit var currentListener: LocationComponent.CurrentLocationEngineCallback
-
- @Mock
- private lateinit var lastListener: LocationComponent.LastLocationEngineCallback
-
- @Mock
- private lateinit var compassEngine: CompassEngine
-
- @Mock
- private lateinit var locationLayerController: LocationLayerController
-
- @Mock
- private lateinit var locationCameraController: LocationCameraController
-
- @Mock
- private lateinit var locationAnimatorCoordinator: LocationAnimatorCoordinator
-
- @Mock
- private lateinit var staleStateManager: StaleStateManager
-
- @Mock
- private lateinit var locationEngineProvider: LocationComponent.InternalLocationEngineProvider
-
- @Mock
- private lateinit var style: Style
-
- private lateinit var developerAnimationListeners: List<MapboxMap.OnDeveloperAnimationListener>
-
- @Before
- fun before() {
- MockitoAnnotations.initMocks(this)
- developerAnimationListeners = mutableListOf()
- locationComponent = LocationComponent(mapboxMap, transform, developerAnimationListeners, currentListener, lastListener, locationLayerController, locationCameraController, locationAnimatorCoordinator, staleStateManager, compassEngine, locationEngineProvider)
- doReturn(locationEngine).`when`(locationEngineProvider).getBestLocationEngine(context, false)
- doReturn(style).`when`(mapboxMap).style
- }
-
- @Test
- fun activateWithRequestTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
-
- Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest)
-
- doReturn(mock(TypedArray::class.java)).`when`(context)
- .obtainStyledAttributes(R.style.mapbox_LocationComponent, R.styleable.mapbox_LocationComponent)
-
- val resources = mock(Resources::class.java)
-
- doReturn(resources).`when`(context).resources
- doReturn(0f).`when`(resources)
- .getDimension(R.dimen.mapbox_locationComponentTrackingMultiFingerMoveThreshold)
- doReturn(0f).`when`(resources)
- .getDimension(R.dimen.mapbox_locationComponentTrackingMultiFingerMoveThreshold)
- locationComponent.activateLocationComponent(context, mock(Style::class.java), true, locationEngineRequest)
- Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest)
- }
-
- @Test
- fun activateWithDefaultLocationEngineRequestAndOptionsTestDefaultLocationEngine() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), true, locationEngineRequest, locationComponentOptions)
- Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest)
- Assert.assertNotNull(locationComponent.locationEngine)
- }
-
- @Test
- fun activateWithDefaultLocationEngineRequestAndOptionsTestCustomLocationEngine() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), false, locationEngineRequest, locationComponentOptions)
- Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest)
- Assert.assertNull(locationComponent.locationEngine)
- }
-
- @Test
- fun locationUpdatesWhenEnabledDisableTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- verify(locationEngine, times(0)).removeLocationUpdates(currentListener)
- verify(locationEngine, times(0)).requestLocationUpdates(eq(locationEngineRequest), eq(currentListener), any(Looper::class.java))
-
- locationComponent.onStart()
- verify(locationEngine, times(0)).removeLocationUpdates(currentListener)
- verify(locationEngine, times(0)).requestLocationUpdates(eq(locationEngineRequest), eq(currentListener), any(Looper::class.java))
-
- locationComponent.isLocationComponentEnabled = true
- verify(locationEngine).requestLocationUpdates(eq(locationEngineRequest), eq(currentListener), any(Looper::class.java))
-
- locationComponent.isLocationComponentEnabled = false
- verify(locationEngine).requestLocationUpdates(eq(locationEngineRequest), eq(currentListener), any(Looper::class.java))
- verify(locationEngine).removeLocationUpdates(currentListener)
- }
-
- @Test
- fun locationUpdatesWhenStartedStoppedTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
-
- locationComponent.onStop()
- verify(locationEngine).removeLocationUpdates(currentListener)
-
- locationComponent.onStart()
- verify(locationEngine, times(2)).requestLocationUpdates(eq(locationEngineRequest), eq(currentListener), any(Looper::class.java))
- }
-
- @Test
- fun locationUpdatesWhenNewRequestTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
-
- val newRequest = mock(LocationEngineRequest::class.java)
- locationComponent.locationEngineRequest = newRequest
- verify(locationEngine).removeLocationUpdates(currentListener)
- verify(locationEngine).requestLocationUpdates(eq(newRequest), eq(currentListener), any(Looper::class.java))
- }
-
- @Test
- fun lastLocationUpdateOnStartTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
-
- verify(locationEngine).getLastLocation(lastListener)
- }
-
- @Test
- fun transitionCallbackFinishedTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- val listener = mock(OnLocationCameraTransitionListener::class.java)
-
- val callback = ArgumentCaptor.forClass(OnLocationCameraTransitionListener::class.java)
- locationComponent.setCameraMode(CameraMode.TRACKING, listener)
- verify(locationCameraController).setCameraMode(eq(CameraMode.TRACKING), any(), eq(TRANSITION_ANIMATION_DURATION_MS), isNull(), isNull(), isNull(), callback.capture())
- callback.value.onLocationCameraTransitionFinished(CameraMode.TRACKING)
-
- verify(listener).onLocationCameraTransitionFinished(CameraMode.TRACKING)
- verify(locationAnimatorCoordinator).resetAllCameraAnimations(CameraPosition.DEFAULT, false)
- }
-
- @Test
- fun transitionCallbackCanceledTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- val listener = mock(OnLocationCameraTransitionListener::class.java)
-
- val callback = ArgumentCaptor.forClass(OnLocationCameraTransitionListener::class.java)
- locationComponent.setCameraMode(CameraMode.TRACKING, listener)
- verify(locationCameraController).setCameraMode(eq(CameraMode.TRACKING), any(), eq(TRANSITION_ANIMATION_DURATION_MS), isNull(), isNull(), isNull(), callback.capture())
- callback.value.onLocationCameraTransitionCanceled(CameraMode.TRACKING)
-
- verify(listener).onLocationCameraTransitionCanceled(CameraMode.TRACKING)
- verify(locationAnimatorCoordinator).resetAllCameraAnimations(CameraPosition.DEFAULT, false)
- }
-
- @Test
- fun transitionCustomFinishedTest() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- val listener = mock(OnLocationCameraTransitionListener::class.java)
-
- val callback = ArgumentCaptor.forClass(OnLocationCameraTransitionListener::class.java)
- locationComponent.setCameraMode(CameraMode.TRACKING, 1200, 14.0, 13.0, 45.0, listener)
- verify(locationCameraController).setCameraMode(eq(CameraMode.TRACKING), any(), eq(1200L), eq(14.0), eq(13.0), eq(45.0), callback.capture())
- callback.value.onLocationCameraTransitionFinished(CameraMode.TRACKING)
-
- verify(listener).onLocationCameraTransitionFinished(CameraMode.TRACKING)
- verify(locationAnimatorCoordinator).resetAllCameraAnimations(CameraPosition.DEFAULT, false)
- }
-
- @Test
- fun compass_listenWhenConsumedByNoneCamera() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationCameraController.isConsumingCompass).thenReturn(true)
- locationComponent.cameraMode = CameraMode.NONE_COMPASS
- verify(compassEngine).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_listenWhenConsumedByTrackingCamera() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationCameraController.isConsumingCompass).thenReturn(true)
- locationComponent.cameraMode = CameraMode.TRACKING_COMPASS
- verify(compassEngine).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_listenWhenConsumedByLayer() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- verify(compassEngine).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_notListenWhenNotConsumed() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(false)
- `when`(locationCameraController.isConsumingCompass).thenReturn(false)
- locationComponent.renderMode = RenderMode.GPS
- locationComponent.renderMode = RenderMode.NORMAL
- locationComponent.cameraMode = CameraMode.TRACKING
- locationComponent.cameraMode = CameraMode.NONE
- locationComponent.cameraMode = CameraMode.NONE_GPS
- locationComponent.cameraMode = CameraMode.TRACKING_GPS
- locationComponent.cameraMode = CameraMode.TRACKING_GPS_NORTH
- verify(compassEngine, never()).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_removeListenerOnChange() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- `when`(locationLayerController.isConsumingCompass).thenReturn(false)
- locationComponent.renderMode = RenderMode.NORMAL
- verify(compassEngine).removeCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_removeListenerOnStop() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- locationComponent.onStop()
- verify(compassEngine).removeCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_reAddListenerOnStart() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- locationComponent.onStop()
- locationComponent.onStart()
- verify(compassEngine, times(2)).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_removeListenerOnStyleStartLoad() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- locationComponent.onStartLoadingMap()
- verify(compassEngine).removeCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_reAddListenerOnStyleLoadFinished() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- locationComponent.onStartLoadingMap()
- locationComponent.onFinishLoadingStyle()
- verify(compassEngine, times(2)).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_reAddListenerOnlyWhenEnabled() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- locationComponent.isLocationComponentEnabled = false
-
- locationComponent.onStartLoadingMap()
- locationComponent.onFinishLoadingStyle()
- verify(compassEngine).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_notAdListenerWhenDisabled() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.onStart()
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- verify(compassEngine, never()).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun compass_notAdListenerWhenStopped() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.isLocationComponentEnabled = true
- `when`(mapboxMap.cameraPosition).thenReturn(CameraPosition.DEFAULT)
-
- `when`(locationLayerController.isConsumingCompass).thenReturn(true)
- locationComponent.renderMode = RenderMode.COMPASS
- verify(compassEngine, never()).addCompassListener(any(CompassListener::class.java))
- }
-
- @Test
- fun developerAnimationCalled() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.isLocationComponentEnabled = true
- for (listener in developerAnimationListeners) {
- listener.onDeveloperAnimationStarted()
- }
- verify(locationCameraController).setCameraMode(eq(CameraMode.NONE), isNull<Location>(), eq(TRANSITION_ANIMATION_DURATION_MS), isNull<Double>(), isNull<Double>(), isNull<Double>(), any())
- }
-
- @Test
- fun internal_cameraTrackingChangedListener_onCameraTrackingDismissed() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.isLocationComponentEnabled = true
-
- val cameraChangeListener: OnCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener::class.java)
- locationComponent.addOnCameraTrackingChangedListener(cameraChangeListener)
-
- locationComponent.cameraTrackingChangedListener.onCameraTrackingDismissed()
-
- verify(cameraChangeListener).onCameraTrackingDismissed()
- }
-
- @Test
- fun internal_cameraTrackingChangedListener_onCameraTrackingChanged() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.isLocationComponentEnabled = true
-
- val cameraValueListener: AnimatorListenerHolder = mock(AnimatorListenerHolder::class.java)
- val layerValueListener: AnimatorListenerHolder = mock(AnimatorListenerHolder::class.java)
- `when`(locationCameraController.animationListeners).thenReturn(setOf(cameraValueListener))
- `when`(locationLayerController.animationListeners).thenReturn(setOf(layerValueListener))
- val cameraChangeListener: OnCameraTrackingChangedListener = mock(OnCameraTrackingChangedListener::class.java)
- locationComponent.addOnCameraTrackingChangedListener(cameraChangeListener)
-
- locationComponent.cameraTrackingChangedListener.onCameraTrackingChanged(CameraMode.TRACKING_GPS)
-
- verify(locationAnimatorCoordinator).cancelZoomAnimation()
- verify(locationAnimatorCoordinator).cancelTiltAnimation()
- verify(locationAnimatorCoordinator).updateAnimatorListenerHolders(eq(setOf(cameraValueListener, layerValueListener)))
- verify(locationAnimatorCoordinator).resetAllCameraAnimations(any(), anyBoolean())
- verify(locationAnimatorCoordinator).resetAllLayerAnimations()
- verify(cameraChangeListener).onCameraTrackingChanged(CameraMode.TRACKING_GPS)
- }
-
- @Test
- fun internal_renderModeChangedListener_onRenderModeChanged() {
- locationComponent.activateLocationComponent(context, mock(Style::class.java), locationEngine, locationEngineRequest, locationComponentOptions)
- locationComponent.isLocationComponentEnabled = true
-
- val cameraListener: AnimatorListenerHolder = mock(AnimatorListenerHolder::class.java)
- val layerListener: AnimatorListenerHolder = mock(AnimatorListenerHolder::class.java)
- `when`(locationCameraController.animationListeners).thenReturn(setOf(cameraListener))
- `when`(locationLayerController.animationListeners).thenReturn(setOf(layerListener))
- val renderChangeListener: OnRenderModeChangedListener = mock(OnRenderModeChangedListener::class.java)
- locationComponent.addOnRenderModeChangedListener(renderChangeListener)
-
- locationComponent.renderModeChangedListener.onRenderModeChanged(RenderMode.NORMAL)
-
- verify(locationAnimatorCoordinator).updateAnimatorListenerHolders(eq(setOf(cameraListener, layerListener)))
- verify(locationAnimatorCoordinator).resetAllCameraAnimations(any(), anyBoolean())
- verify(locationAnimatorCoordinator).resetAllLayerAnimations()
- verify(renderChangeListener).onRenderModeChanged(RenderMode.NORMAL)
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationLayerControllerTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationLayerControllerTest.java
deleted file mode 100644
index ed2d015d85..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationLayerControllerTest.java
+++ /dev/null
@@ -1,718 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import android.graphics.Bitmap;
-import android.support.annotation.NonNull;
-
-import com.google.gson.JsonElement;
-import com.mapbox.geojson.Feature;
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.location.modes.RenderMode;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-import com.mapbox.mapboxsdk.maps.Style;
-import com.mapbox.mapboxsdk.style.layers.Layer;
-import com.mapbox.mapboxsdk.style.sources.GeoJsonSource;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import java.util.Set;
-
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.ACCURACY_LAYER;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.BACKGROUND_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.BACKGROUND_LAYER;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.BACKGROUND_STALE_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.BEARING_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.BEARING_LAYER;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.FOREGROUND_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.FOREGROUND_LAYER;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.FOREGROUND_STALE_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.LOCATION_SOURCE;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_ACCURACY_RADIUS;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_COMPASS_BEARING;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_FOREGROUND_ICON_OFFSET;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_GPS_BEARING;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_SHADOW_ICON_OFFSET;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.SHADOW_ICON;
-import static com.mapbox.mapboxsdk.location.LocationComponentConstants.SHADOW_LAYER;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_LAYER_ACCURACY;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_LAYER_COMPASS_BEARING;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_LAYER_GPS_BEARING;
-import static com.mapbox.mapboxsdk.location.MapboxAnimator.ANIMATOR_LAYER_LATLNG;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class LocationLayerControllerTest {
-
- private MapboxMap mapboxMap = mock(MapboxMap.class);
- private Style style = mock(Style.class);
-
- @Before
- public void before() {
- when(mapboxMap.getStyle()).thenReturn(style);
- }
-
- @Test
- public void onInitialization_locationSourceIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addSource(locationSource);
- }
-
- @Test
- public void onInitialization_shadowLayerIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- Layer shadowLayer = mock(Layer.class);
- when(sourceProvider.generateLayer(SHADOW_LAYER)).thenReturn(shadowLayer);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addLayerBelow(shadowLayer, BACKGROUND_LAYER);
- }
-
- @Test
- public void onInitialization_backgroundLayerIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- Layer backgroundLayer = mock(Layer.class);
- when(sourceProvider.generateLayer(BACKGROUND_LAYER)).thenReturn(backgroundLayer);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addLayerBelow(backgroundLayer, FOREGROUND_LAYER);
- }
-
- @Test
- public void onInitialization_foregroundLayerIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- Layer foregroundLayer = mock(Layer.class);
- when(sourceProvider.generateLayer(FOREGROUND_LAYER)).thenReturn(foregroundLayer);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addLayerBelow(foregroundLayer, BEARING_LAYER);
- }
-
- @Test
- public void onInitialization_bearingLayerIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- Layer bearingLayer = mock(Layer.class);
- when(sourceProvider.generateLayer(BEARING_LAYER)).thenReturn(bearingLayer);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- String layerBelow = "layer-below";
- when(options.layerBelow()).thenReturn(layerBelow);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addLayerBelow(bearingLayer, layerBelow);
- }
-
- @Test
- public void onInitialization_accuracyLayerIsAdded() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- Layer accuracyLayer = mock(Layer.class);
- when(sourceProvider.generateAccuracyLayer()).thenReturn(accuracyLayer);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addLayerBelow(accuracyLayer, BACKGROUND_LAYER);
- }
-
- @Test
- public void onInitialization_numberOfCachedLayerIdsIsConstant() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- LocationLayerController controller =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- controller.initializeComponents(mapboxMap.getStyle(), options);
-
- assertEquals(5, controller.layerSet.size());
- }
-
- @Test
- public void applyStyle_styleShadowWithValidElevation() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateShadowBitmap(any(LocationComponentOptions.class))).thenReturn(bitmap);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.elevation()).thenReturn(2f);
-
- // Style is applied on initialization
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(SHADOW_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_ignoreStyleShadowWithInvalidElevation() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateShadowBitmap(any(LocationComponentOptions.class))).thenReturn(bitmap);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- when(options.elevation()).thenReturn(0f);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style, times(0)).addImage(SHADOW_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_styleForegroundFromOptions() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.foregroundDrawable()).thenReturn(drawableResId);
- when(options.foregroundTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(FOREGROUND_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_styleForegroundStaleFromOptions() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.foregroundDrawableStale()).thenReturn(drawableResId);
- when(options.foregroundStaleTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(FOREGROUND_STALE_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_styleBackgroundFromOptions() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.backgroundDrawable()).thenReturn(drawableResId);
- when(options.backgroundTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(BACKGROUND_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_styleBackgroundStaleFromOptions() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.backgroundDrawableStale()).thenReturn(drawableResId);
- when(options.backgroundStaleTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(BACKGROUND_STALE_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_styleBearingFromOptions() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.bearingDrawable()).thenReturn(drawableResId);
- when(options.bearingTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(BEARING_ICON, bitmap);
- }
-
- @Test
- public void applyStyle_layerBelowChanged() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
-
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateShadowBitmap(any(LocationComponentOptions.class))).thenReturn(bitmap);
-
- LocationLayerController layerController =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- Layer bearingLayer2 = mock(Layer.class);
- when(sourceProvider.generateLayer(BEARING_LAYER)).thenReturn(bearingLayer2);
- Layer foregroundLayer2 = mock(Layer.class);
- when(sourceProvider.generateLayer(FOREGROUND_LAYER)).thenReturn(foregroundLayer2);
- Layer backgroundLayer2 = mock(Layer.class);
- when(sourceProvider.generateLayer(BACKGROUND_LAYER)).thenReturn(backgroundLayer2);
- Layer shadowLayer2 = mock(Layer.class);
- when(sourceProvider.generateLayer(SHADOW_LAYER)).thenReturn(shadowLayer2);
- Layer accuracyLayer2 = mock(Layer.class);
- when(sourceProvider.generateAccuracyLayer()).thenReturn(accuracyLayer2);
- String layerBelow = "layer-below";
- when(options.layerBelow()).thenReturn(layerBelow);
-
- layerController.applyStyle(options);
-
- verify(style).removeLayer(BEARING_LAYER);
- verify(style).removeLayer(FOREGROUND_LAYER);
- verify(style).removeLayer(BACKGROUND_LAYER);
- verify(style).removeLayer(SHADOW_LAYER);
- verify(style).removeLayer(ACCURACY_LAYER);
-
- verify(style).addLayerBelow(bearingLayer2, layerBelow);
- verify(style).addLayerBelow(foregroundLayer2, BEARING_LAYER);
- verify(style).addLayerBelow(backgroundLayer2, FOREGROUND_LAYER);
- verify(style).addLayerBelow(shadowLayer2, BACKGROUND_LAYER);
- verify(style).addLayerBelow(accuracyLayer2, BACKGROUND_LAYER);
- }
-
- @Test
- public void applyStyle_layerBelowNotChanged() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateShadowBitmap(any(LocationComponentOptions.class))).thenReturn(bitmap);
-
- String layerBelow = "layer-below";
- when(options.layerBelow()).thenReturn(layerBelow);
-
- LocationLayerController layerController =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- options = mock(LocationComponentOptions.class);
- layerBelow = "layer-below";
- when(options.layerBelow()).thenReturn(layerBelow);
- layerController.applyStyle(options);
-
- verify(style, times(0)).removeLayer(any(String.class));
- verify(style, times(5)).addLayerBelow(any(Layer.class), any(String.class));
- }
-
- @Test
- public void applyStyle_layerBelowNotChangedNull() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateShadowBitmap(any(LocationComponentOptions.class))).thenReturn(bitmap);
-
- LocationLayerController layerController =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- options = mock(LocationComponentOptions.class);
- layerController.applyStyle(options);
-
- verify(style, times(0)).removeLayer(any(String.class));
- verify(style, times(1)).addLayer(any(Layer.class));
- verify(style, times(4)).addLayerBelow(any(Layer.class), Mockito.<String>any());
- }
-
- @Test
- public void updateForegroundOffset_foregroundIconPropertyIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
-
- layer.updateForegroundOffset(2d);
-
- verify(locationFeature).addProperty(eq(PROPERTY_FOREGROUND_ICON_OFFSET), any(JsonElement.class));
- }
-
- @Test
- public void updateForegroundOffset_shadowPropertyIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.updateForegroundOffset(2d);
-
- verify(locationFeature).addProperty(eq(PROPERTY_SHADOW_ICON_OFFSET), any(JsonElement.class));
- }
-
- @Test
- public void onNewLatLngValue_locationFeatureIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
-
- getAnimationListener(ANIMATOR_LAYER_LATLNG, layer.getAnimationListeners()).onNewAnimationValue(new LatLng());
-
- // wanted twice (once for initialization)
- verify(locationSource, times(2)).setGeoJson(locationFeature);
- }
-
- @Test
- public void onNewGpsBearingValue_locationFeatureIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.GPS);
- float gpsBearing = 2f;
-
- getAnimationListener(ANIMATOR_LAYER_GPS_BEARING, layer.getAnimationListeners()).onNewAnimationValue(gpsBearing);
-
- verify(locationFeature).addNumberProperty(PROPERTY_GPS_BEARING, gpsBearing);
- }
-
- @Test
- public void onNewGpsBearingValue_updateIgnoredWithInvalidRenderMode() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.COMPASS);
- float gpsBearing = 2f;
-
- assertNull(getAnimationListener(ANIMATOR_LAYER_GPS_BEARING, layer.getAnimationListeners()));
- verify(locationFeature, times(0)).addNumberProperty(PROPERTY_GPS_BEARING, gpsBearing);
- }
-
- @Test
- public void onNewCompassBearingValue_locationFeatureIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.COMPASS);
- float compassBearing = 2f;
-
- getAnimationListener(ANIMATOR_LAYER_COMPASS_BEARING, layer.getAnimationListeners())
- .onNewAnimationValue(compassBearing);
-
- verify(locationFeature).addNumberProperty(PROPERTY_COMPASS_BEARING, compassBearing);
- }
-
- @Test
- public void onNewCompassBearingValue_updateIgnoredWithInvalidRenderMode() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.GPS);
- float compassBearing = 2f;
-
- assertNull(getAnimationListener(ANIMATOR_LAYER_COMPASS_BEARING, layer.getAnimationListeners()));
- verify(locationFeature, times(0)).addNumberProperty(PROPERTY_COMPASS_BEARING, compassBearing);
- }
-
- @Test
- public void onNewAccuracyRadiusValue_locationFeatureIsUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.NORMAL);
- float accuracyRadiusValue = 2f;
-
- getAnimationListener(ANIMATOR_LAYER_ACCURACY, layer.getAnimationListeners())
- .onNewAnimationValue(accuracyRadiusValue);
-
- verify(locationFeature).addNumberProperty(PROPERTY_ACCURACY_RADIUS, accuracyRadiusValue);
- }
-
- @Test
- public void onNewAccuracyRadiusValue_updateIgnoredWithInvalidRenderMode() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(style.getSourceAs(LOCATION_SOURCE)).thenReturn(locationSource);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- Feature locationFeature = mock(Feature.class);
- LocationLayerController layer = new LocationLayerController(
- mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(locationFeature, options),
- bitmapProvider, options, internalRenderModeChangedListener
- );
- layer.setRenderMode(RenderMode.GPS);
- float accuracyRadiusValue = 2f;
-
- assertNull(getAnimationListener(ANIMATOR_LAYER_ACCURACY, layer.getAnimationListeners()));
- verify(locationFeature, times(0))
- .addNumberProperty(PROPERTY_ACCURACY_RADIUS, accuracyRadiusValue);
- }
-
- @Test
- public void renderModeChanged_doNotNotifyAboutDuplicates_NORMAL() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- LocationLayerController controller =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- controller.setRenderMode(RenderMode.NORMAL);
- controller.setRenderMode(RenderMode.NORMAL);
-
- verify(internalRenderModeChangedListener, times(1)).onRenderModeChanged(RenderMode.NORMAL);
- }
-
- @Test
- public void renderModeChanged_doNotNotifyAboutDuplicates_GPS() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- GeoJsonSource locationSource = mock(GeoJsonSource.class);
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(locationSource);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- LocationComponentOptions options = mock(LocationComponentOptions.class);
-
- LocationLayerController controller =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- controller.setRenderMode(RenderMode.GPS);
- controller.setRenderMode(RenderMode.GPS);
-
- verify(internalRenderModeChangedListener, times(1)).onRenderModeChanged(RenderMode.GPS);
- }
-
- @Test
- public void layerHidden_renderModeChanged_layerShown_foregroundIconUpdated() {
- OnRenderModeChangedListener internalRenderModeChangedListener = mock(OnRenderModeChangedListener.class);
- LayerSourceProvider sourceProvider = buildLayerProvider();
- when(sourceProvider.generateSource(any(Feature.class))).thenReturn(mock(GeoJsonSource.class));
- LocationComponentOptions options = mock(LocationComponentOptions.class);
- int drawableResId = 123;
- int tintColor = 456;
- when(options.foregroundDrawable()).thenReturn(drawableResId);
- when(options.foregroundTintColor()).thenReturn(tintColor);
- LayerBitmapProvider bitmapProvider = mock(LayerBitmapProvider.class);
- Bitmap bitmap = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableResId, tintColor)).thenReturn(bitmap);
-
- LocationLayerController controller =
- new LocationLayerController(mapboxMap, mapboxMap.getStyle(), sourceProvider, buildFeatureProvider(options),
- bitmapProvider, options, internalRenderModeChangedListener);
-
- verify(style).addImage(FOREGROUND_ICON, bitmap);
-
- int drawableGpsResId = 789;
- when(options.gpsDrawable()).thenReturn(drawableGpsResId);
-
- Bitmap bitmapGps = mock(Bitmap.class);
- when(bitmapProvider.generateBitmap(drawableGpsResId, tintColor)).thenReturn(bitmapGps);
-
- controller.hide();
-
- controller.setRenderMode(RenderMode.GPS);
-
- controller.show();
-
- verify(style).addImage(FOREGROUND_ICON, bitmapGps);
- }
-
- private LayerFeatureProvider buildFeatureProvider(@NonNull LocationComponentOptions options) {
- LayerFeatureProvider provider = mock(LayerFeatureProvider.class);
- when(provider.generateLocationFeature(null, options)).thenReturn(mock(Feature.class));
- return provider;
- }
-
- private LayerFeatureProvider buildFeatureProvider(Feature feature, @NonNull LocationComponentOptions options) {
- LayerFeatureProvider provider = mock(LayerFeatureProvider.class);
- when(provider.generateLocationFeature(null, options)).thenReturn(feature);
- return provider;
- }
-
- private LayerSourceProvider buildLayerProvider() {
- LayerSourceProvider layerSourceProvider = mock(LayerSourceProvider.class);
-
- Layer shadowLayer = mock(Layer.class);
- when(shadowLayer.getId()).thenReturn(SHADOW_LAYER);
- when(layerSourceProvider.generateLayer(SHADOW_LAYER)).thenReturn(shadowLayer);
-
- Layer backgroundLayer = mock(Layer.class);
- when(backgroundLayer.getId()).thenReturn(BACKGROUND_LAYER);
- when(layerSourceProvider.generateLayer(BACKGROUND_LAYER)).thenReturn(backgroundLayer);
-
- Layer foregroundLayer = mock(Layer.class);
- when(foregroundLayer.getId()).thenReturn(FOREGROUND_LAYER);
- when(layerSourceProvider.generateLayer(FOREGROUND_LAYER)).thenReturn(foregroundLayer);
-
- Layer bearingLayer = mock(Layer.class);
- when(bearingLayer.getId()).thenReturn(BEARING_LAYER);
- when(layerSourceProvider.generateLayer(BEARING_LAYER)).thenReturn(bearingLayer);
-
- Layer accuracyLayer = mock(Layer.class);
- when(accuracyLayer.getId()).thenReturn(ACCURACY_LAYER);
- when(layerSourceProvider.generateAccuracyLayer()).thenReturn(accuracyLayer);
- return layerSourceProvider;
- }
-
- private <T> MapboxAnimator.AnimationsValueChangeListener<T> getAnimationListener(
- @MapboxAnimator.Type int animatorType,
- Set<AnimatorListenerHolder> holders) {
- for (AnimatorListenerHolder holder : holders) {
- @MapboxAnimator.Type int type = holder.getAnimatorType();
- if (type == animatorType) {
- return holder.getListener();
- }
- }
- return null;
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/MapboxAnimatorTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/MapboxAnimatorTest.kt
deleted file mode 100644
index 7c126c7832..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/MapboxAnimatorTest.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.mapbox.mapboxsdk.location
-
-import android.animation.ValueAnimator
-import io.mockk.every
-import io.mockk.mockk
-import io.mockk.verify
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.robolectric.RobolectricTestRunner
-
-@RunWith(RobolectricTestRunner::class)
-class MapboxAnimatorTest {
-
- @Test
- fun fps_unlimited() {
- val valueAnimator = mockk<ValueAnimator>()
- every { valueAnimator.animatedValue } answers { 5f }
- val listener = mockk<MapboxAnimator.AnimationsValueChangeListener<Float>>()
- every { listener.onNewAnimationValue(any()) } answers {}
- val mapboxAnimator = MapboxFloatAnimator(0f, 10f, listener, Int.MAX_VALUE)
-
- for (i in 0 until 5)
- mapboxAnimator.onAnimationUpdate(valueAnimator)
-
- verify(exactly = 5) { listener.onNewAnimationValue(5f) }
- }
-
- @Test
- fun fps_limited() {
- val valueAnimator = mockk<ValueAnimator>()
- every { valueAnimator.animatedValue } answers { 5f }
- val listener = mockk<MapboxAnimator.AnimationsValueChangeListener<Float>>()
- every { listener.onNewAnimationValue(any()) } answers {}
- val mapboxAnimator = MapboxFloatAnimator(0f, 10f, listener, 5)
-
- for (i in 0 until 5) {
- mapboxAnimator.onAnimationUpdate(valueAnimator)
- Thread.sleep(150)
- }
-
- verify(exactly = 3) { listener.onNewAnimationValue(5f) }
- }
-} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/UtilsTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/UtilsTest.java
deleted file mode 100644
index bf5ee40f4a..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/UtilsTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mapbox.mapboxsdk.location;
-
-import org.junit.Test;
-
-import static junit.framework.Assert.assertEquals;
-
-public final class UtilsTest {
-
- @Test
- public void shortestRotation_doesReturnValueDistanceQuickestToZero() throws Exception {
- float value = Utils.shortestRotation(0, 181);
- assertEquals(360f, value);
- value = Utils.shortestRotation(0, 179);
- assertEquals(0f, value);
- value = Utils.shortestRotation(0, 180);
- assertEquals(0f, value);
- }
-
- @Test
- public void shortestRotation_doesReturnValueDistanceQuickestToFifty() throws Exception {
- float value = Utils.shortestRotation(50, 231);
- assertEquals(410f, value);
- value = Utils.shortestRotation(50, 229);
- assertEquals(50f, value);
- value = Utils.shortestRotation(50, 180);
- assertEquals(50f, value);
- }
-}