// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.tagging; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; /** * Unit tests of {@link TagModel} class. */ public class TagModelTest { /** * Unit test of {@link TagModel#TagModel} - single value. */ @Test public void testTagModelSingleValue() { TagModel tm = new TagModel(); assertEquals("", tm.getName()); assertEquals("", tm.getValue()); assertEquals(1, tm.getValueCount()); assertTrue(tm.hasValue(null)); assertTrue(tm.hasValue("")); tm.clearValues(); assertEquals(0, tm.getValueCount()); assertEquals("", tm.getValue()); tm.setValue(null); assertEquals(1, tm.getValueCount()); assertEquals("", tm.getValue()); tm = new TagModel("key"); assertEquals("key", tm.getName()); assertEquals("", tm.getValue()); assertEquals(1, tm.getValueCount()); assertTrue(tm.hasValue("")); } /** * Unit test of {@link TagModel#TagModel} - multiple values. */ @Test public void testTagModelMultipleValues() { TagModel tm = new TagModel("key2", "val2"); assertEquals("key2", tm.getName()); assertEquals("val2", tm.getValue()); assertEquals(1, tm.getValueCount()); assertTrue(tm.hasValue("val2")); tm.setName("key3"); tm.setValue("val3"); assertEquals("key3", tm.getName()); assertEquals("val3", tm.getValue()); assertEquals(1, tm.getValueCount()); assertTrue(tm.hasValue("val3")); tm.addValue("val4"); tm.addValue("val4"); assertEquals(2, tm.getValueCount()); assertEquals("val3;val4", tm.getValue()); tm.removeValue("something"); tm.removeValue(null); assertEquals(2, tm.getValueCount()); assertEquals("val3;val4", tm.getValue()); tm.removeValue("val3"); assertEquals(1, tm.getValueCount()); assertEquals("val4", tm.getValue()); } }