diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java')
2 files changed, 63 insertions, 19 deletions
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 index a3d54fe221..5e010cc901 100644 --- 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 @@ -22,6 +22,7 @@ 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; @@ -522,7 +523,7 @@ public class LocationCameraControllerTest { camera.initializeOptions(mock(LocationComponentOptions.class)); OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); - camera.setCameraMode(TRACKING, null, listener); + camera.setCameraMode(TRACKING, null, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); Assert.assertEquals(TRACKING, camera.getCameraMode()); verify(listener).onLocationCameraTransitionFinished(TRACKING); verify(mapboxMap, times(0)) @@ -537,7 +538,7 @@ public class LocationCameraControllerTest { OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); - camera.setCameraMode(NONE, location, listener); + camera.setCameraMode(NONE, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); verify(listener, times(1)).onLocationCameraTransitionFinished(NONE); verify(mapboxMap, times(0)) .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); @@ -564,7 +565,7 @@ public class LocationCameraControllerTest { }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback .class)); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); verify(listener).onLocationCameraTransitionFinished(TRACKING); verify(mapboxMap) .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); @@ -582,7 +583,7 @@ public class LocationCameraControllerTest { final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); doAnswer(new Answer<Void>() { @Override @@ -593,7 +594,7 @@ public class LocationCameraControllerTest { }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback .class)); - camera.setCameraMode(TRACKING_GPS_NORTH, location, listener); + camera.setCameraMode(TRACKING_GPS_NORTH, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); verify(listener, times(1)).onLocationCameraTransitionFinished(TRACKING_GPS_NORTH); verify(mapboxMap, times(1)) .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); @@ -620,7 +621,7 @@ public class LocationCameraControllerTest { }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback .class)); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); verify(listener).onLocationCameraTransitionCanceled(TRACKING); verify(mapboxMap) .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); @@ -645,12 +646,12 @@ public class LocationCameraControllerTest { ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location)); verify(mapboxMap).animateCamera( eq(CameraUpdateFactory.newCameraPosition(builder.build())), - eq((int) LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS), + eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); Assert.assertTrue(camera.isTransitioning()); @@ -681,7 +682,7 @@ public class LocationCameraControllerTest { ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location)); verify(mapboxMap).moveCamera( @@ -716,12 +717,12 @@ public class LocationCameraControllerTest { ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class); - camera.setCameraMode(TRACKING, location, listener); + camera.setCameraMode(TRACKING, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); CameraPosition.Builder builder = new CameraPosition.Builder().target(new LatLng(location)); verify(mapboxMap).animateCamera( eq(CameraUpdateFactory.newCameraPosition(builder.build())), - eq((int) LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS), + eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); Assert.assertTrue(camera.isTransitioning()); @@ -749,12 +750,12 @@ public class LocationCameraControllerTest { when(location.getBearing()).thenReturn(30f); when(location.getAltitude()).thenReturn(0.0); - camera.setCameraMode(TRACKING_GPS, location, listener); + 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(mapboxMap).animateCamera( eq(CameraUpdateFactory.newCameraPosition(builder.build())), - eq((int) LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS), + eq((int) TRANSITION_ANIMATION_DURATION_MS), any(MapboxMap.CancelableCallback.class)); } @@ -774,12 +775,12 @@ public class LocationCameraControllerTest { when(location.getBearing()).thenReturn(30f); when(location.getAltitude()).thenReturn(0.0); - camera.setCameraMode(TRACKING_GPS_NORTH, location, listener); + 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(mapboxMap).animateCamera( eq(CameraUpdateFactory.newCameraPosition(builder.build())), - eq((int) LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS), + eq((int) TRANSITION_ANIMATION_DURATION_MS), any(MapboxMap.CancelableCallback.class)); } @@ -798,11 +799,11 @@ public class LocationCameraControllerTest { ArgumentCaptor<MapboxMap.CancelableCallback> callbackCaptor = ArgumentCaptor.forClass(MapboxMap.CancelableCallback.class); - camera.setCameraMode(TRACKING_GPS, location, listener); + camera.setCameraMode(TRACKING_GPS, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); verify(mapboxMap).animateCamera( any(CameraUpdate.class), - eq((int) LocationComponentConstants.TRANSITION_ANIMATION_DURATION_MS), + eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); LatLng latLng = new LatLng(10, 10); @@ -823,6 +824,30 @@ public class LocationCameraControllerTest { verify(mapboxMap, times(4)).moveCamera(any(CameraUpdate.class)); } + @Test + public void transition_customAnimation() { + MapboxMap mapboxMap = mock(MapboxMap.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); + 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(mapboxMap) + .animateCamera(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)); 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 index 0f316fa483..f54864f0f0 100644 --- 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 @@ -8,6 +8,7 @@ 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 @@ -174,7 +175,7 @@ class LocationComponentTest { val callback = ArgumentCaptor.forClass(OnLocationCameraTransitionListener::class.java) locationComponent.setCameraMode(CameraMode.TRACKING, listener) - verify(locationCameraController).setCameraMode(eq(CameraMode.TRACKING), any(), callback.capture()) + 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) @@ -192,7 +193,7 @@ class LocationComponentTest { val callback = ArgumentCaptor.forClass(OnLocationCameraTransitionListener::class.java) locationComponent.setCameraMode(CameraMode.TRACKING, listener) - verify(locationCameraController).setCameraMode(eq(CameraMode.TRACKING), any(), callback.capture()) + 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) @@ -200,6 +201,24 @@ class LocationComponentTest { } @Test + fun transitionCustomFinishedTest() { + locationComponent.activateLocationComponent(context, mockk(), 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, mockk(), locationEngine, locationEngineRequest, locationComponentOptions) locationComponent.onStart() |