From fd5ee4050670672e75acaaec5ce97877d89ee1e6 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 11 Jul 2016 13:51:58 +0200 Subject: [PATCH] [android] #5631 - add a concrete java exception when creating a marker without the required position field. [android] #5631 - updated test cases to handle invalid position on a Marker --- .../mapboxsdk/annotations/MarkerOptions.java | 5 +++ .../annotations/MarkerViewOptions.java | 5 +++ .../InvalidMarkerPositionException.java | 10 +++++ .../mapboxsdk/annotations/InfoWindowTest.java | 6 +-- .../mapboxsdk/annotations/MarkerTest.java | 16 ++++--- .../mapboxsdk/annotations/MarkerViewTest.java | 33 ++++++++------ .../mapbox/mapboxsdk/maps/MapboxMapTest.java | 44 +++++++++++-------- 7 files changed, 78 insertions(+), 41 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidMarkerPositionException.java diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java index 7ca3687b0..e0f3b86fc 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.os.Parcel; import android.os.Parcelable; +import com.mapbox.mapboxsdk.exceptions.InvalidMarkerPositionException; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -70,6 +71,10 @@ public final class MarkerOptions extends BaseMarkerOptions markerList = new ArrayList<>(); - MarkerOptions markerOptions1 = new MarkerOptions().title("a"); - MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + MarkerOptions markerOptions1 = new MarkerOptions().position(new LatLng()).title("a"); + MarkerOptions markerOptions2 = new MarkerOptions().position(new LatLng()).title("b"); markerList.add(markerOptions1); markerList.add(markerOptions2); mMapboxMap.addMarkers(markerList); @@ -600,7 +606,7 @@ public class MapboxMapTest { @Test public void testAddMarkersSingleMarker() { List markerList = new ArrayList<>(); - MarkerOptions markerOptions = new MarkerOptions().title("a"); + MarkerOptions markerOptions = new MarkerOptions().title("a").position(new LatLng()); markerList.add(markerOptions); mMapboxMap.addMarkers(markerList); assertEquals("Markers size should be 1", 1, mMapboxMap.getMarkers().size()); @@ -701,7 +707,7 @@ public class MapboxMapTest { @Test public void testRemoveMarker() { - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker marker = mMapboxMap.addMarker(markerOptions); mMapboxMap.removeMarker(marker); assertTrue("Markers should be empty", mMapboxMap.getMarkers().isEmpty()); @@ -725,7 +731,7 @@ public class MapboxMapTest { @Test public void testRemoveAnnotation() { - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker marker = mMapboxMap.addMarker(markerOptions); mMapboxMap.removeAnnotation(marker); assertTrue("Annotations should be empty", mMapboxMap.getAnnotations().isEmpty()); @@ -733,7 +739,7 @@ public class MapboxMapTest { @Test public void testRemoveAnnotationById() { - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); mMapboxMap.addMarker(markerOptions); // id will always be 0 in unit tests mMapboxMap.removeAnnotation(0); @@ -743,8 +749,8 @@ public class MapboxMapTest { @Test public void testRemoveAnnotations() { List markerList = new ArrayList<>(); - MarkerOptions markerOptions1 = new MarkerOptions().title("a"); - MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + MarkerOptions markerOptions1 = new MarkerOptions().title("a").position(new LatLng()); + MarkerOptions markerOptions2 = new MarkerOptions().title("b").position(new LatLng()); markerList.add(markerOptions1); markerList.add(markerOptions2); mMapboxMap.addMarkers(markerList); @@ -755,8 +761,8 @@ public class MapboxMapTest { @Test public void testClear() { List markerList = new ArrayList<>(); - MarkerOptions markerOptions1 = new MarkerOptions().title("a"); - MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + MarkerOptions markerOptions1 = new MarkerOptions().title("a").position(new LatLng()); + MarkerOptions markerOptions2 = new MarkerOptions().title("b").position(new LatLng()); markerList.add(markerOptions1); markerList.add(markerOptions2); mMapboxMap.addMarkers(markerList); @@ -767,12 +773,12 @@ public class MapboxMapTest { @Test public void testRemoveAnnotationsByList() { List markerList = new ArrayList<>(); - MarkerOptions markerOptions1 = new MarkerOptions().title("a"); - MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + MarkerOptions markerOptions1 = new MarkerOptions().title("a").position(new LatLng()); + MarkerOptions markerOptions2 = new MarkerOptions().title("b").position(new LatLng()); markerList.add(markerOptions1); markerList.add(markerOptions2); List markers = mMapboxMap.addMarkers(markerList); - Marker marker = mMapboxMap.addMarker(new MarkerOptions().title("c")); + Marker marker = mMapboxMap.addMarker(new MarkerOptions().position(new LatLng()).title("c")); mMapboxMap.removeAnnotations(markers); assertTrue("Annotations should not be empty", mMapboxMap.getAnnotations().size() == 1); assertTrue("Marker should be contained", mMapboxMap.getAnnotations().contains(marker)); @@ -780,7 +786,7 @@ public class MapboxMapTest { @Test public void testGetAnnotationById() { - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker initialMarker = mMapboxMap.addMarker(markerOptions); Marker retrievedMarker = (Marker) mMapboxMap.getAnnotation(0); assertEquals("Markers should match", initialMarker, retrievedMarker); @@ -814,7 +820,7 @@ public class MapboxMapTest { @Test public void testSelectMarker() { mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker marker = mMapboxMap.addMarker(markerOptions); when(mOnMarkerClickListener.onMarkerClick(marker)).thenReturn(true); mMapboxMap.selectMarker(marker); @@ -824,7 +830,7 @@ public class MapboxMapTest { @Test public void testDeselectMarker() { mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker marker = mMapboxMap.addMarker(markerOptions); when(mOnMarkerClickListener.onMarkerClick(marker)).thenReturn(true); mMapboxMap.selectMarker(marker); @@ -835,7 +841,7 @@ public class MapboxMapTest { @Test public void testDeselectMarkers() { mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); - MarkerOptions markerOptions = new MarkerOptions(); + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng()); Marker marker1 = mMapboxMap.addMarker(markerOptions); Marker marker2 = mMapboxMap.addMarker(markerOptions); when(mOnMarkerClickListener.onMarkerClick(marker1)).thenReturn(true); @@ -853,7 +859,7 @@ public class MapboxMapTest { @Test public void testOnMarkerClick() { mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); - Marker marker = new MarkerOptions().getMarker(); + Marker marker = new MarkerOptions().position(new LatLng()).getMarker(); when(mOnMarkerClickListener.onMarkerClick(marker)).thenReturn(true); mMapboxMap.selectMarker(marker); verify(mOnMarkerClickListener, times(1)).onMarkerClick(marker);