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/LocationCameraControllerTest.java255
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt21
2 files changed, 180 insertions, 96 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