From c042ce8df4353f852d39ea88178f4451cf52e083 Mon Sep 17 00:00:00 2001 From: Taylor Smock Date: Tue, 30 Jun 2020 14:06:55 -0600 Subject: [PATCH] Add a test for MapWithAIDefaultLayerTableModel Signed-off-by: Taylor Smock --- .../MapWithAIDefaultLayerTableModel.java | 7 --- .../MapWithAIDefaultLayerTableModelTest.java | 52 +++++++++++++++++++ 2 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModelTest.java diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModel.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModel.java index 926fd20..08076f9 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModel.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModel.java @@ -58,13 +58,6 @@ class MapWithAIDefaultLayerTableModel extends DefaultTableModel { return MapWithAILayerInfo.getInstance().getAllDefaultLayers().get(row); } - @Override - public void removeRow(int row) { - columnTypes.remove(row); - columnDataRetrieval.remove(row); - super.removeRow(row); - } - @Override public int getRowCount() { return MapWithAILayerInfo.getInstance().getAllDefaultLayers().size(); diff --git a/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModelTest.java b/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModelTest.java new file mode 100644 index 0000000..694451c --- /dev/null +++ b/test/unit/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIDefaultLayerTableModelTest.java @@ -0,0 +1,52 @@ +// License: GPL. For details, see LICENSE file. +package org.openstreetmap.josm.plugins.mapwithai.gui.preferences.mapwithai; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.IntStream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.openstreetmap.josm.plugins.mapwithai.data.mapwithai.MapWithAIInfo; +import org.openstreetmap.josm.plugins.mapwithai.data.mapwithai.MapWithAILayerInfo; +import org.openstreetmap.josm.plugins.mapwithai.testutils.MapWithAITestRules; +import org.openstreetmap.josm.testutils.JOSMTestRules; + +public class MapWithAIDefaultLayerTableModelTest { + @RegisterExtension + JOSMTestRules rule = new MapWithAITestRules().wiremock().sources(); + + @Test + public void testGetRow() { + List infos = MapWithAILayerInfo.getInstance().getAllDefaultLayers(); + assertFalse(infos.isEmpty()); + for (int i = 0; i < infos.size(); i++) { + assertSame(infos.get(i), MapWithAIDefaultLayerTableModel.getRow(i)); + } + } + + @Test + public void testRetrieval() { + List infos = new ArrayList<>(MapWithAILayerInfo.getInstance().getAllDefaultLayers()); + assertFalse(infos.isEmpty()); + Collections.shuffle(infos); + + MapWithAIInfo info = infos.get(0); + + MapWithAIDefaultLayerTableModel model = new MapWithAIDefaultLayerTableModel(); + int row = IntStream.range(0, model.getRowCount()) + .filter(i -> info.equals(MapWithAIDefaultLayerTableModel.getRow(i))).findAny().orElse(-1); + assertNotEquals(-1, row); + IntStream.rangeClosed(0, model.getColumnCount()).forEach(column -> { + assertDoesNotThrow(() -> model.getValueAt(row, column), info.getName()); + assertFalse(model.isCellEditable(row, column), info.getName()); + assertDoesNotThrow(() -> model.getColumnClass(column)); + }); + } +}