diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk')
4 files changed, 230 insertions, 98 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 5e010cc901..7fb018d235 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 @@ -11,6 +11,7 @@ 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; @@ -38,6 +39,7 @@ 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; @@ -180,75 +182,70 @@ public class LocationCameraControllerTest { @Test public void onNewLatLngValue_cameraModeTrackingUpdatesLatLng() { - MapboxMap mapboxMap = mock(MapboxMap.class); - when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class)); - when(mapboxMap.getProjection()).thenReturn(mock(Projection.class)); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewLatLngValue_cameraModeTrackingGpsNorthUpdatesLatLng() { - MapboxMap mapboxMap = mock(MapboxMap.class); - when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class)); - when(mapboxMap.getProjection()).thenReturn(mock(Projection.class)); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewLatLngValue_cameraModeTrackingGpsUpdatesLatLng() { - MapboxMap mapboxMap = mock(MapboxMap.class); - when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class)); - when(mapboxMap.getProjection()).thenReturn(mock(Projection.class)); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewLatLngValue_cameraModeTrackingCompassUpdatesLatLng() { - MapboxMap mapboxMap = mock(MapboxMap.class); - when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class)); - when(mapboxMap.getProjection()).thenReturn(mock(Projection.class)); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewLatLngValue_cameraModeNoneIgnored() { - MapboxMap mapboxMap = mock(MapboxMap.class); - when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class)); - when(mapboxMap.getProjection()).thenReturn(mock(Projection.class)); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap, times(0)).moveCamera(any(CameraUpdate.class)); + verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test @@ -274,75 +271,82 @@ public class LocationCameraControllerTest { @Test public void onNewGpsBearingValue_cameraModeTrackingGpsUpdatesBearing() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewGpsBearingValue_cameraModeNoneGpsUpdatesBearing() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + 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); - LocationCameraController camera = buildCamera(mapboxMap); camera.initializeOptions(mock(LocationComponentOptions.class)); camera.setCameraMode(TRACKING_GPS_NORTH); float gpsBearing = 5f; getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing); - verify(mapboxMap).moveCamera(any(CameraUpdate.class)); + 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); - LocationCameraController camera = buildCamera(mapboxMap); camera.initializeOptions(mock(LocationComponentOptions.class)); camera.setCameraMode(TRACKING_GPS_NORTH); float gpsBearing = 5f; getAnimationListener(ANIMATOR_CAMERA_GPS_BEARING, camera.getAnimationListeners()).onNewAnimationValue(gpsBearing); - verify(mapboxMap, times(0)).moveCamera(any(CameraUpdate.class)); + verify(transform, times(0)).moveCamera(eq(mapboxMap), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewGpsBearingValue_cameraModeNoneIgnored() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap, times(0)).moveCamera(any(CameraUpdate.class)); + verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewCompassBearingValue_cameraModeTrackingCompassUpdatesBearing() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + Transform transform = mock(Transform.class); + LocationCameraController camera = buildCamera(transform); camera.initializeOptions(mock(LocationComponentOptions.class)); camera.setCameraMode(TRACKING_COMPASS); float compassBearing = 5f; @@ -350,13 +354,14 @@ public class LocationCameraControllerTest { getAnimationListener(ANIMATOR_CAMERA_COMPASS_BEARING, camera.getAnimationListeners()) .onNewAnimationValue(compassBearing); - verify(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewCompassBearingValue_cameraModeNoneCompassUpdatesBearing() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + Transform transform = mock(Transform.class); + LocationCameraController camera = buildCamera(transform); camera.initializeOptions(mock(LocationComponentOptions.class)); camera.setCameraMode(NONE_COMPASS); float compassBearing = 5f; @@ -364,44 +369,48 @@ public class LocationCameraControllerTest { getAnimationListener(ANIMATOR_CAMERA_COMPASS_BEARING, camera.getAnimationListeners()) .onNewAnimationValue(compassBearing); - verify(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewCompassBearingValue_cameraModeNoneIgnored() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap, times(0)).moveCamera(any(CameraUpdate.class)); + verify(transform, times(0)).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNewZoomValue_cameraIsUpdated() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test public void onNeTiltValue_cameraIsUpdated() { - MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap).moveCamera(any(CameraUpdate.class)); + verify(transform).moveCamera(any(MapboxMap.class), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); } @Test @@ -519,39 +528,44 @@ public class LocationCameraControllerTest { @Test public void transition_locationIsNull() { MapboxMap mapboxMap = mock(MapboxMap.class); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap, times(0)) - .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); + 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); - LocationCameraController camera = buildCamera(mapboxMap); + 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(mapboxMap, times(0)) - .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); + 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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -562,23 +576,25 @@ public class LocationCameraControllerTest { listener.onLocationCameraTransitionFinished(TRACKING); return null; } - }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback - .class)); + }).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(mapboxMap) - .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); + 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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -591,23 +607,25 @@ public class LocationCameraControllerTest { listener.onLocationCameraTransitionFinished(TRACKING_GPS_NORTH); return null; } - }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback - .class)); + }).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(mapboxMap, times(1)) - .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); + 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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -618,23 +636,25 @@ public class LocationCameraControllerTest { listener.onLocationCameraTransitionCanceled(TRACKING); return null; } - }).when(mapboxMap).animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback - .class)); + }).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(mapboxMap) - .animateCamera(any(CameraUpdate.class), any(Integer.class), any(MapboxMap.CancelableCallback.class)); + 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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -649,7 +669,8 @@ public class LocationCameraControllerTest { 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( + verify(transform).animateCamera( + eq(mapboxMap), eq(CameraUpdateFactory.newCameraPosition(builder.build())), eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); @@ -666,11 +687,12 @@ public class LocationCameraControllerTest { @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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -685,7 +707,8 @@ public class LocationCameraControllerTest { 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( + verify(transform).moveCamera( + eq(mapboxMap), eq(CameraUpdateFactory.newCameraPosition(builder.build())), callbackCaptor.capture()); @@ -701,11 +724,12 @@ public class LocationCameraControllerTest { @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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -720,7 +744,8 @@ public class LocationCameraControllerTest { 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( + verify(transform).animateCamera( + eq(mapboxMap), eq(CameraUpdateFactory.newCameraPosition(builder.build())), eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); @@ -737,11 +762,12 @@ public class LocationCameraControllerTest { @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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -753,7 +779,8 @@ public class LocationCameraControllerTest { 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( + verify(transform).animateCamera( + eq(mapboxMap), eq(CameraUpdateFactory.newCameraPosition(builder.build())), eq((int) TRANSITION_ANIMATION_DURATION_MS), any(MapboxMap.CancelableCallback.class)); @@ -762,11 +789,12 @@ public class LocationCameraControllerTest { @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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -778,7 +806,8 @@ public class LocationCameraControllerTest { 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( + verify(transform).animateCamera( + eq(mapboxMap), eq(CameraUpdateFactory.newCameraPosition(builder.build())), eq((int) TRANSITION_ANIMATION_DURATION_MS), any(MapboxMap.CancelableCallback.class)); @@ -787,11 +816,12 @@ public class LocationCameraControllerTest { @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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); final OnLocationCameraTransitionListener listener = mock(OnLocationCameraTransitionListener.class); Location location = mock(Location.class); @@ -801,7 +831,8 @@ public class LocationCameraControllerTest { camera.setCameraMode(TRACKING_GPS, location, TRANSITION_ANIMATION_DURATION_MS, null, null, null, listener); - verify(mapboxMap).animateCamera( + verify(transform).animateCamera( + eq(mapboxMap), any(CameraUpdate.class), eq((int) TRANSITION_ANIMATION_DURATION_MS), callbackCaptor.capture()); @@ -812,7 +843,8 @@ public class LocationCameraControllerTest { getAnimationListener(ANIMATOR_TILT, camera.getAnimationListeners()).onNewAnimationValue(10f); getAnimationListener(ANIMATOR_ZOOM, camera.getAnimationListeners()).onNewAnimationValue(10f); - verify(mapboxMap, times(0)).moveCamera(any(CameraUpdate.class)); + verify(transform, times(0)).moveCamera(eq(mapboxMap), any(CameraUpdate.class), + nullable(MapboxMap.CancelableCallback.class)); callbackCaptor.getValue().onFinish(); @@ -821,17 +853,19 @@ public class LocationCameraControllerTest { getAnimationListener(ANIMATOR_TILT, camera.getAnimationListeners()).onNewAnimationValue(10f); getAnimationListener(ANIMATOR_ZOOM, camera.getAnimationListeners()).onNewAnimationValue(10f); - verify(mapboxMap, times(4)).moveCamera(any(CameraUpdate.class)); + 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); + LocationCameraController camera = buildCamera(mapboxMap, transform); camera.initializeOptions(mock(LocationComponentOptions.class)); Location location = mock(Location.class); CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition( @@ -844,13 +878,14 @@ public class LocationCameraControllerTest { ); camera.setCameraMode(TRACKING, location, 1200, 14.0, 13.0, 45.0, null); - verify(mapboxMap) - .animateCamera(eq(cameraUpdate), eq(1200), any(MapboxMap.CancelableCallback.class)); + 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)); @@ -858,13 +893,14 @@ public class LocationCameraControllerTest { OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class); AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class); AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class); - return new LocationCameraController(mapboxMap, moveGestureDetector, + 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)); @@ -872,26 +908,55 @@ public class LocationCameraControllerTest { OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class); AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class); AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class); - return new LocationCameraController(mapboxMap, moveGestureDetector, + 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, moveGestureDetector, + 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, moveGestureDetector, + return new LocationCameraController(mapboxMap, transform, moveGestureDetector, onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager); } 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 f54864f0f0..384a8cf65a 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 @@ -3,6 +3,7 @@ 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 @@ -13,6 +14,7 @@ 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 io.mockk.mockk import org.junit.Assert import org.junit.Before @@ -35,6 +37,9 @@ class LocationComponentTest { private lateinit var mapboxMap: MapboxMap @Mock + private lateinit var transform: Transform + + @Mock private lateinit var context: Context @Mock @@ -70,10 +75,13 @@ class LocationComponentTest { @Mock private lateinit var style: Style + private lateinit var developerAnimationListeners: List<MapboxMap.OnDeveloperAnimationListener> + @Before fun before() { MockitoAnnotations.initMocks(this) - locationComponent = LocationComponent(mapboxMap, currentListener, lastListener, locationLayerController, locationCameraController, locationAnimatorCoordinator, staleStateManager, compassEngine, locationEngineProvider) + 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 } @@ -351,6 +359,7 @@ class LocationComponentTest { `when`(locationLayerController.isConsumingCompass).thenReturn(true) locationComponent.renderMode = RenderMode.COMPASS locationComponent.isLocationComponentEnabled = false + locationComponent.onStartLoadingMap() locationComponent.onFinishLoadingStyle() verify(compassEngine).addCompassListener(any(CompassListener::class.java)) @@ -377,4 +386,14 @@ class LocationComponentTest { locationComponent.renderMode = RenderMode.COMPASS verify(compassEngine, never()).addCompassListener(any(CompassListener::class.java)) } + + @Test + fun developerAnimationCalled() { + locationComponent.activateLocationComponent(context, mockk(), 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()) + } }
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt index 6cf8568a8d..deb5f603c8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.maps import com.mapbox.mapboxsdk.camera.CameraPosition import com.mapbox.mapboxsdk.camera.CameraUpdateFactory +import com.mapbox.mapboxsdk.constants.MapboxConstants import com.mapbox.mapboxsdk.geometry.LatLng import com.mapbox.mapboxsdk.geometry.LatLngBounds import com.mapbox.mapboxsdk.style.layers.TransitionOptions @@ -23,12 +24,15 @@ class MapboxMapTest { private lateinit var cameraChangeDispatcher: CameraChangeDispatcher + private lateinit var developerAnimationListener: MapboxMap.OnDeveloperAnimationListener + @Before fun setup() { cameraChangeDispatcher = spyk() + developerAnimationListener = mockk(relaxed = true) nativeMapView = mockk(relaxed = true) transform = mockk(relaxed = true) - mapboxMap = MapboxMap(nativeMapView, transform, mockk(relaxed = true), null, null, cameraChangeDispatcher) + mapboxMap = MapboxMap(nativeMapView, transform, mockk(relaxed = true), null, null, cameraChangeDispatcher, listOf(developerAnimationListener)) every { nativeMapView.isDestroyed } returns false every { nativeMapView.nativePtr } returns 5 mapboxMap.injectLocationComponent(spyk()) @@ -51,6 +55,50 @@ class MapboxMapTest { val update = CameraUpdateFactory.newCameraPosition(expected) mapboxMap.moveCamera(update, callback) verify { transform.moveCamera(mapboxMap, update, callback) } + verify { developerAnimationListener.onDeveloperAnimationStarted() } + } + + @Test + fun testEaseCamera() { + val callback = mockk<MapboxMap.CancelableCallback>() + val target = LatLng(1.0, 2.0) + val expected = CameraPosition.Builder().target(target).build() + val update = CameraUpdateFactory.newCameraPosition(expected) + mapboxMap.easeCamera(update, callback) + verify { transform.easeCamera(mapboxMap, update, MapboxConstants.ANIMATION_DURATION, true, callback) } + verify { developerAnimationListener.onDeveloperAnimationStarted() } + } + + @Test + fun testAnimateCamera() { + val callback = mockk<MapboxMap.CancelableCallback>() + val target = LatLng(1.0, 2.0) + val expected = CameraPosition.Builder().target(target).build() + val update = CameraUpdateFactory.newCameraPosition(expected) + mapboxMap.animateCamera(update, callback) + verify { transform.animateCamera(mapboxMap, update, MapboxConstants.ANIMATION_DURATION, callback) } + verify { developerAnimationListener.onDeveloperAnimationStarted() } + } + + @Test + fun testScrollBy() { + mapboxMap.scrollBy(100f, 200f) + verify { nativeMapView.moveBy(100.0, 200.0, 0) } + verify { developerAnimationListener.onDeveloperAnimationStarted() } + } + + @Test + fun testResetNorth() { + mapboxMap.resetNorth() + verify { transform.resetNorth() } + verify { developerAnimationListener.onDeveloperAnimationStarted() } + } + + @Test + fun testFocalBearing() { + mapboxMap.setFocalBearing(35.0, 100f, 200f, 1000) + verify { transform.setBearing(35.0, 100f, 200f, 1000) } + verify { developerAnimationListener.onDeveloperAnimationStarted() } } @Test diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt index 0ae5bfa6ed..1f5d7d8a32 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt @@ -28,7 +28,7 @@ class StyleTest { @Before fun setup() { nativeMapView = mockk(relaxed = true) - mapboxMap = MapboxMap(nativeMapView, null, null, null, null, null) + mapboxMap = MapboxMap(nativeMapView, null, null, null, null, null, null) every { nativeMapView.isDestroyed } returns false mapboxMap.injectLocationComponent(spyk()) } |