// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.conflict.tags; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.Arrays; import java.util.Collections; import javax.swing.JTable; import org.junit.Rule; import org.junit.Test; import org.openstreetmap.josm.data.osm.Tag; import org.openstreetmap.josm.data.osm.TagCollection; import org.openstreetmap.josm.testutils.JOSMTestRules; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; /** * Unit tests of {@link MultiValueCellRenderer} class. */ public class MultiValueCellRendererTest { /** * Setup test. */ @Rule @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") public JOSMTestRules test = new JOSMTestRules().preferences(); /** * Unit test of {@link MultiValueCellRenderer#MultiValueCellRenderer}. */ @Test public void testMultiValueCellRenderer() { TagConflictResolverModel model = new TagConflictResolverModel(); TagCollection tags = new TagCollection(Arrays.asList(new Tag("oneway", "yes"), new Tag("oneway", "no"))); model.populate(tags, Collections.singleton("oneway")); JTable table = new JTable(model); MultiValueResolutionDecision decision = new MultiValueResolutionDecision(tags); MultiValueCellRenderer r = new MultiValueCellRenderer(); test(table, decision, r); decision.keepAll(); test(table, decision, r); decision.keepNone(); test(table, decision, r); decision.keepOne("yes"); test(table, decision, r); decision.sumAllNumeric(); test(table, decision, r); decision.undecide(); test(table, decision, r); } private void test(JTable table, MultiValueResolutionDecision value, MultiValueCellRenderer r) { assertEquals(r, r.getTableCellRendererComponent(table, value, false, false, 0, 0)); assertEquals(r, r.getTableCellRendererComponent(table, value, false, false, 0, 1)); assertNotNull(r.getTableCellRendererComponent(table, value, false, false, 0, 2)); assertEquals(r, r.getTableCellRendererComponent(table, value, true, false, 0, 0)); assertEquals(r, r.getTableCellRendererComponent(table, value, true, false, 0, 1)); assertNotNull(r.getTableCellRendererComponent(table, value, true, false, 0, 2)); } }