// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.correction; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import org.junit.Rule; import org.junit.Test; import org.openstreetmap.josm.data.correction.TagCorrection; import org.openstreetmap.josm.testutils.JOSMTestRules; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; /** * Unit tests of {@link TagCorrectionTable} class. */ public class TagCorrectionTableTest { /** * Setup tests */ @Rule @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") public JOSMTestRules test = new JOSMTestRules(); /** * Test of {@link TagCorrectionTable#TagCorrectionTable}. */ @Test public void testTagCorrectionTable() { TagCorrection tc1 = new TagCorrection("foo", "bar", "foo", "baz"); TagCorrection tc2 = new TagCorrection("bar", "foo", "baz", "foo"); TagCorrectionTable t = new TagCorrectionTable(Arrays.asList(tc1, tc2)); assertNotNull(t.getCellRenderer(0, 0)); assertNotNull(t.getCellRenderer(0, 1)); assertNotNull(t.getCellRenderer(0, 2)); assertNotNull(t.getCellRenderer(0, 3)); assertNotNull(t.getCellRenderer(0, 4)); assertNotNull(t.getCellRenderer(1, 0)); assertNotNull(t.getCellRenderer(1, 1)); assertNotNull(t.getCellRenderer(1, 2)); assertNotNull(t.getCellRenderer(1, 3)); assertNotNull(t.getCellRenderer(1, 4)); TagCorrectionTableModel model = t.getCorrectionTableModel(); assertEquals(2, model.getCorrections().size()); assertEquals(2, model.getRowCount()); assertEquals(4, model.getApplyColumn()); assertTrue(model.getApply(0)); assertEquals(String.class, model.getColumnClass(0)); assertEquals(Boolean.class, model.getColumnClass(4)); assertEquals("Old key", model.getColumnName(0)); assertEquals("Old value", model.getColumnName(1)); assertEquals("New key", model.getColumnName(2)); assertEquals("New value", model.getColumnName(3)); assertEquals("Apply?", model.getColumnName(4)); assertNull(model.getColumnName(5)); assertFalse(model.isCellEditable(0, 0)); assertFalse(model.isCellEditable(1, 0)); assertTrue(model.isCellEditable(0, 4)); assertTrue(model.isCellEditable(1, 4)); assertEquals("foo", model.getValueAt(0, 0)); assertEquals("bar", model.getValueAt(0, 1)); assertEquals("foo", model.getValueAt(0, 2)); assertEquals("baz", model.getValueAt(0, 3)); assertTrue((Boolean) model.getValueAt(0, 4)); assertNull(model.getValueAt(0, 5)); assertEquals("bar", model.getValueAt(1, 0)); assertEquals("foo", model.getValueAt(1, 1)); assertEquals("baz", model.getValueAt(1, 2)); assertEquals("foo", model.getValueAt(1, 3)); assertTrue((Boolean) model.getValueAt(1, 4)); assertNull(model.getValueAt(1, 5)); model.setValueAt("", 0, 0); assertEquals("foo", model.getValueAt(0, 0)); model.setValueAt("", 0, 4); assertTrue((Boolean) model.getValueAt(0, 4)); model.setValueAt(Boolean.FALSE, 0, 4); assertFalse((Boolean) model.getValueAt(0, 4)); TagCorrection[] array = new TagCorrection[15]; Arrays.fill(array, tc1); t = new TagCorrectionTable(Arrays.asList(array)); assertEquals(array.length, t.getCorrectionTableModel().getCorrections().size()); } }