From f36f362d262c38734d5bbc7e1681e523a2a801db Mon Sep 17 00:00:00 2001 From: Taylor Smock Date: Thu, 25 Jun 2020 11:01:53 -0600 Subject: [PATCH] More testing for MapWithAIDownloadSourceType Signed-off-by: Taylor Smock --- .../download/MapWithAIDownloadSourceType.java | 5 ++-- .../MapWithAIDownloadSourceTypeTest.java | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceType.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceType.java index 0a93f36..cc09fac 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceType.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceType.java @@ -27,10 +27,11 @@ public class MapWithAIDownloadSourceType implements IDownloadSourceType, LayerCh @Override public JCheckBox getCheckBox(ChangeListener checkboxChangeListener) { if (cbDownloadMapWithAIData == null) { - cbDownloadMapWithAIData = new JCheckBox(tr("MapWithAI data"), true); + cbDownloadMapWithAIData = new JCheckBox(tr("MapWithAI data"), getBooleanProperty().get()); cbDownloadMapWithAIData .setToolTipText(tr("Select to download MapWithAI data in the selected download area.")); - cbDownloadMapWithAIData.getModel().addChangeListener(checkboxChangeListener); + cbDownloadMapWithAIData.getModel() + .addActionListener(l -> getBooleanProperty().put(cbDownloadMapWithAIData.isSelected())); MapWithAILayerInfo.getInstance().addListener(this); } if (checkboxChangeListener != null) { diff --git a/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceTypeTest.java b/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceTypeTest.java index 4476373..abcb9a3 100644 --- a/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceTypeTest.java +++ b/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/download/MapWithAIDownloadSourceTypeTest.java @@ -2,8 +2,14 @@ package org.openstreetmap.josm.plugins.mapwithai.gui.download; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.concurrent.atomic.AtomicBoolean; + +import javax.swing.JCheckBox; + import org.junit.Rule; import org.junit.Test; import org.openstreetmap.josm.data.Bounds; @@ -32,4 +38,23 @@ public class MapWithAIDownloadSourceTypeTest { assertFalse(type.isDownloadAreaTooLarge(MapWithAIDataUtilsTest.getTestBounds()), "The download area shouldn't be too large"); } + + /** + * Test that the listener works properly + */ + @Test + public void testMapWithAIDownloadSourceTypeListener() { + MapWithAIDownloadSourceType type = new MapWithAIDownloadSourceType(); + JCheckBox checkbox = type.getCheckBox(); + assertNotNull(checkbox); + assertSame(checkbox, type.getCheckBox()); + + AtomicBoolean listener = new AtomicBoolean(); + type.getCheckBox(l -> listener.set(!listener.get())); + assertFalse(listener.get()); + checkbox.doClick(); + assertTrue(listener.get()); + checkbox.doClick(); + assertFalse(listener.get()); + } }