From ac065dbcedb66f15f677a1953a1c779174698330 Mon Sep 17 00:00:00 2001 From: tobrun Date: Wed, 30 Jan 2019 13:12:39 +0100 Subject: [PATCH] [annotation] - fixup remove drag listener naming, add listener tests for add/remove --- .../annotation_manager_unit_test.junit.ejs | 34 +++++++++++++++++++ .../plugins/annotation/AnnotationManager.java | 22 +++++++++--- .../plugins/annotation/CircleManagerTest.java | 34 +++++++++++++++++++ .../plugins/annotation/FillManagerTest.java | 34 +++++++++++++++++++ .../plugins/annotation/LineManagerTest.java | 34 +++++++++++++++++++ .../plugins/annotation/SymbolManagerTest.java | 34 +++++++++++++++++++ 6 files changed, 187 insertions(+), 5 deletions(-) diff --git a/plugin-annotation/scripts/annotation_manager_unit_test.junit.ejs b/plugin-annotation/scripts/annotation_manager_unit_test.junit.ejs index c3a00ef9a..24de1f112 100644 --- a/plugin-annotation/scripts/annotation_manager_unit_test.junit.ejs +++ b/plugin-annotation/scripts/annotation_manager_unit_test.junit.ejs @@ -451,4 +451,38 @@ public class <%- camelize(type) %>ManagerTest { assertEquals(expression, <%- type %>Manager.getFilter()); assertEquals(expression, <%- type %>Manager.layerFilter); } + + @Test + public void testClickListener(){ + On<%- camelize(type) %>ClickListener listener = mock(On<%- camelize(type) %>ClickListener.class); + <%- type %>Manager = new <%- camelize(type) %>Manager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(<%- type %>Manager.getClickListeners().isEmpty()); + <%- type %>Manager.addClickListener(listener); + assertTrue(<%- type %>Manager.getClickListeners().contains(listener)); + <%- type %>Manager.removeClickListener(listener); + assertTrue( <%- type %>Manager.getClickListeners().isEmpty()); + } + + @Test + public void testLongClickListener(){ + On<%- camelize(type) %>LongClickListener listener = mock(On<%- camelize(type) %>LongClickListener.class); + <%- type %>Manager = new <%- camelize(type) %>Manager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(<%- type %>Manager.getLongClickListeners().isEmpty()); + <%- type %>Manager.addLongClickListener(listener); + assertTrue(<%- type %>Manager.getLongClickListeners().contains(listener)); + <%- type %>Manager.removeLongClickListener(listener); + assertTrue(<%- type %>Manager.getLongClickListeners().isEmpty()); + } + + @Test + public void testDragListener(){ + On<%- camelize(type) %>DragListener listener = mock(On<%- camelize(type) %>DragListener.class); + <%- type %>Manager = new <%- camelize(type) %>Manager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(<%- type %>Manager.getDragListeners().isEmpty()); + <%- type %>Manager.addDragListener(listener); + assertTrue(<%- type %>Manager.getDragListeners().contains(listener)); + <%- type %>Manager.removeDragListener(listener); + assertTrue(<%- type %>Manager.getDragListeners().isEmpty()); + } + } \ No newline at end of file diff --git a/plugin-annotation/src/main/java/com/mapbox/mapboxsdk/plugins/annotation/AnnotationManager.java b/plugin-annotation/src/main/java/com/mapbox/mapboxsdk/plugins/annotation/AnnotationManager.java index f01ab32db..ac006201a 100644 --- a/plugin-annotation/src/main/java/com/mapbox/mapboxsdk/plugins/annotation/AnnotationManager.java +++ b/plugin-annotation/src/main/java/com/mapbox/mapboxsdk/plugins/annotation/AnnotationManager.java @@ -4,6 +4,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; +import android.support.annotation.VisibleForTesting; import android.support.v4.util.LongSparseArray; import com.mapbox.geojson.Feature; @@ -237,7 +238,7 @@ public void addDragListener(@NonNull D d) { * @param d the callback to be removed */ @UiThread - public void removeClickListener(@NonNull D d) { + public void removeDragListener(@NonNull D d) { dragListeners.remove(d); } @@ -281,6 +282,21 @@ public void removeLongClickListener(@NonNull V v) { longClickListeners.remove(v); } + @VisibleForTesting + List getClickListeners() { + return clickListeners; + } + + @VisibleForTesting + List getLongClickListeners() { + return longClickListeners; + } + + @VisibleForTesting + List getDragListeners() { + return dragListeners; + } + /** * Cleanup annotation manager, used to clear listeners */ @@ -301,10 +317,6 @@ public void onDestroy() { abstract void setFilter(@NonNull Expression expression); - List getDragListeners() { - return dragListeners; - } - private void initializeSourcesAndLayers() { geoJsonSource = coreElementProvider.getSource(); layer = coreElementProvider.getLayer(); diff --git a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/CircleManagerTest.java b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/CircleManagerTest.java index 009dfc285..7882c5d44 100644 --- a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/CircleManagerTest.java +++ b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/CircleManagerTest.java @@ -321,4 +321,38 @@ public void testCircleLayerFilter() { assertEquals(expression, circleManager.getFilter()); assertEquals(expression, circleManager.layerFilter); } + + @Test + public void testClickListener(){ + OnCircleClickListener listener = mock(OnCircleClickListener.class); + circleManager = new CircleManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(circleManager.getClickListeners().isEmpty()); + circleManager.addClickListener(listener); + assertTrue(circleManager.getClickListeners().contains(listener)); + circleManager.removeClickListener(listener); + assertTrue( circleManager.getClickListeners().isEmpty()); + } + + @Test + public void testLongClickListener(){ + OnCircleLongClickListener listener = mock(OnCircleLongClickListener.class); + circleManager = new CircleManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(circleManager.getLongClickListeners().isEmpty()); + circleManager.addLongClickListener(listener); + assertTrue(circleManager.getLongClickListeners().contains(listener)); + circleManager.removeLongClickListener(listener); + assertTrue(circleManager.getLongClickListeners().isEmpty()); + } + + @Test + public void testDragListener(){ + OnCircleDragListener listener = mock(OnCircleDragListener.class); + circleManager = new CircleManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(circleManager.getDragListeners().isEmpty()); + circleManager.addDragListener(listener); + assertTrue(circleManager.getDragListeners().contains(listener)); + circleManager.removeDragListener(listener); + assertTrue(circleManager.getDragListeners().isEmpty()); + } + } \ No newline at end of file diff --git a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/FillManagerTest.java b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/FillManagerTest.java index 2d87ddbea..f96ab9770 100644 --- a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/FillManagerTest.java +++ b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/FillManagerTest.java @@ -365,4 +365,38 @@ public void testFillLayerFilter() { assertEquals(expression, fillManager.getFilter()); assertEquals(expression, fillManager.layerFilter); } + + @Test + public void testClickListener(){ + OnFillClickListener listener = mock(OnFillClickListener.class); + fillManager = new FillManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(fillManager.getClickListeners().isEmpty()); + fillManager.addClickListener(listener); + assertTrue(fillManager.getClickListeners().contains(listener)); + fillManager.removeClickListener(listener); + assertTrue( fillManager.getClickListeners().isEmpty()); + } + + @Test + public void testLongClickListener(){ + OnFillLongClickListener listener = mock(OnFillLongClickListener.class); + fillManager = new FillManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(fillManager.getLongClickListeners().isEmpty()); + fillManager.addLongClickListener(listener); + assertTrue(fillManager.getLongClickListeners().contains(listener)); + fillManager.removeLongClickListener(listener); + assertTrue(fillManager.getLongClickListeners().isEmpty()); + } + + @Test + public void testDragListener(){ + OnFillDragListener listener = mock(OnFillDragListener.class); + fillManager = new FillManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(fillManager.getDragListeners().isEmpty()); + fillManager.addDragListener(listener); + assertTrue(fillManager.getDragListeners().contains(listener)); + fillManager.removeDragListener(listener); + assertTrue(fillManager.getDragListeners().isEmpty()); + } + } \ No newline at end of file diff --git a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/LineManagerTest.java b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/LineManagerTest.java index c5b3ec485..4b79aefaf 100644 --- a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/LineManagerTest.java +++ b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/LineManagerTest.java @@ -387,4 +387,38 @@ public void testLineLayerFilter() { assertEquals(expression, lineManager.getFilter()); assertEquals(expression, lineManager.layerFilter); } + + @Test + public void testClickListener(){ + OnLineClickListener listener = mock(OnLineClickListener.class); + lineManager = new LineManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(lineManager.getClickListeners().isEmpty()); + lineManager.addClickListener(listener); + assertTrue(lineManager.getClickListeners().contains(listener)); + lineManager.removeClickListener(listener); + assertTrue( lineManager.getClickListeners().isEmpty()); + } + + @Test + public void testLongClickListener(){ + OnLineLongClickListener listener = mock(OnLineLongClickListener.class); + lineManager = new LineManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(lineManager.getLongClickListeners().isEmpty()); + lineManager.addLongClickListener(listener); + assertTrue(lineManager.getLongClickListeners().contains(listener)); + lineManager.removeLongClickListener(listener); + assertTrue(lineManager.getLongClickListeners().isEmpty()); + } + + @Test + public void testDragListener(){ + OnLineDragListener listener = mock(OnLineDragListener.class); + lineManager = new LineManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(lineManager.getDragListeners().isEmpty()); + lineManager.addDragListener(listener); + assertTrue(lineManager.getDragListeners().contains(listener)); + lineManager.removeDragListener(listener); + assertTrue(lineManager.getDragListeners().isEmpty()); + } + } \ No newline at end of file diff --git a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/SymbolManagerTest.java b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/SymbolManagerTest.java index f3d4bf85c..c44758866 100644 --- a/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/SymbolManagerTest.java +++ b/plugin-annotation/src/test/java/com/mapbox/mapboxsdk/plugins/annotation/SymbolManagerTest.java @@ -609,4 +609,38 @@ public void testSymbolLayerFilter() { assertEquals(expression, symbolManager.getFilter()); assertEquals(expression, symbolManager.layerFilter); } + + @Test + public void testClickListener(){ + OnSymbolClickListener listener = mock(OnSymbolClickListener.class); + symbolManager = new SymbolManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(symbolManager.getClickListeners().isEmpty()); + symbolManager.addClickListener(listener); + assertTrue(symbolManager.getClickListeners().contains(listener)); + symbolManager.removeClickListener(listener); + assertTrue( symbolManager.getClickListeners().isEmpty()); + } + + @Test + public void testLongClickListener(){ + OnSymbolLongClickListener listener = mock(OnSymbolLongClickListener.class); + symbolManager = new SymbolManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(symbolManager.getLongClickListeners().isEmpty()); + symbolManager.addLongClickListener(listener); + assertTrue(symbolManager.getLongClickListeners().contains(listener)); + symbolManager.removeLongClickListener(listener); + assertTrue(symbolManager.getLongClickListeners().isEmpty()); + } + + @Test + public void testDragListener(){ + OnSymbolDragListener listener = mock(OnSymbolDragListener.class); + symbolManager = new SymbolManager(mapView, mapboxMap, style, coreElementProvider, null, draggableAnnotationController); + assertTrue(symbolManager.getDragListeners().isEmpty()); + symbolManager.addDragListener(listener); + assertTrue(symbolManager.getDragListeners().contains(listener)); + symbolManager.removeDragListener(listener); + assertTrue(symbolManager.getDragListeners().isEmpty()); + } + } \ No newline at end of file