summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinatorTest.kt66
1 files changed, 58 insertions, 8 deletions
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
index fad71237ab..b02b99edc7 100644
--- 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
@@ -1,19 +1,23 @@
package com.mapbox.mapboxsdk.location
+import android.animation.Animator
import android.location.Location
+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.maps.Projection
+import io.mockk.every
+import io.mockk.mockk
+import io.mockk.verify
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.mockito.Mockito.mock
import org.robolectric.RobolectricTestRunner
@RunWith(RobolectricTestRunner::class)
@@ -22,9 +26,15 @@ class LocationAnimatorCoordinatorTest {
private lateinit var locationAnimatorCoordinator: LocationAnimatorCoordinator
private val cameraPosition: CameraPosition = CameraPosition.DEFAULT
+ private val animatorSetProvider: MapboxAnimatorSetProvider = mockk()
+
+ private val projection: Projection = mockk()
+
@Before
fun setUp() {
- locationAnimatorCoordinator = LocationAnimatorCoordinator(mock(Projection::class.java))
+ locationAnimatorCoordinator = LocationAnimatorCoordinator(projection, animatorSetProvider)
+ every { projection.getMetersPerPixelAtLatitude(any()) } answers { 1.0 }
+ every { animatorSetProvider.startAnimation(any(), any(), any()) } answers {}
}
@Test
@@ -127,9 +137,6 @@ class LocationAnimatorCoordinatorTest {
val layerAccuracy = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.target as Float
assertEquals(layerAccuracy, accuracy)
-
- val animationDuration = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.duration as Long
- assertEquals(LocationComponentConstants.ACCURACY_RADIUS_ANIMATION_DURATION, animationDuration)
}
@Test
@@ -146,9 +153,6 @@ class LocationAnimatorCoordinatorTest {
val layerAccuracy = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.target as Float
assertEquals(layerAccuracy, accuracy)
-
- val animationDuration = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_ACCURACY]?.duration as Long
- assertEquals(0L, animationDuration)
}
@Test
@@ -283,4 +287,50 @@ class LocationAnimatorCoordinatorTest {
assertTrue(locationAnimatorCoordinator.cameraListeners.isEmpty())
}
+
+ @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)) }
+ }
} \ No newline at end of file