// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.preferences.advanced; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import org.junit.BeforeClass; import org.junit.Test; import org.openstreetmap.josm.JOSMFixture; import org.openstreetmap.josm.data.preferences.StringSetting; import org.openstreetmap.josm.gui.preferences.advanced.PreferencesTable.AllSettingsTableModel; /** * Unit tests of {@link PreferencesTable} class. */ public class PreferencesTableTest { /** * Setup test. */ @BeforeClass public static void setUpBeforeClass() { JOSMFixture.createUnitTestFixture().init(); } private static PrefEntry newPrefEntry(String value) { StringSetting val = new StringSetting(value); StringSetting def = new StringSetting("defaultValue"); return new PrefEntry("key", val, def, false); } private static PreferencesTable newTable() { return new PreferencesTable(Arrays.asList(newPrefEntry("value"))); } /** * Unit test of {@link PreferencesTable#PreferencesTable}. */ @Test public void testPreferencesTable() { PreferencesTable t = newTable(); t.fireDataChanged(); assertTrue(t.getSelectedItems().isEmpty()); assertFalse(t.editPreference(null)); assertNull(t.addPreference(null)); t.resetPreferences(null); } /** * Unit test of {@link PreferencesTable.AllSettingsTableModel} class. */ @Test public void testAllSettingsTableModel() { AllSettingsTableModel model = (AllSettingsTableModel) newTable().getModel(); assertEquals(1, model.getRowCount()); assertFalse(model.isCellEditable(0, 0)); assertTrue(model.isCellEditable(0, 1)); assertEquals("key", model.getValueAt(0, 0)); assertEquals(newPrefEntry("value"), model.getValueAt(0, 1)); String foobar = "foobar"; model.setValueAt(foobar, 0, 1); assertEquals(newPrefEntry(foobar), model.getValueAt(0, 1)); } }