// 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.assertTrue; import org.junit.BeforeClass; import org.junit.Test; import org.openstreetmap.josm.JOSMFixture; import org.openstreetmap.josm.data.preferences.StringSetting; import nl.jqno.equalsverifier.EqualsVerifier; /** * Unit tests of {@link PrefEntry} class. */ public class PrefEntryTest { /** * Setup test. */ @BeforeClass public static void setUpBeforeClass() { JOSMFixture.createUnitTestFixture().init(); } /** * Unit test of {@link PrefEntry#PrefEntry}. */ @Test public void testPrefEntry() { String key = "key"; StringSetting val = new StringSetting("value"); StringSetting def = new StringSetting("defaultValue"); PrefEntry pe = new PrefEntry(key, val, def, false); assertFalse(pe.isDefault()); assertEquals(key, pe.getKey()); assertEquals(val, pe.getValue()); assertEquals(def, pe.getDefaultValue()); StringSetting val2 = new StringSetting("value2"); assertFalse(pe.isChanged()); pe.setValue(val2); assertEquals(val2, pe.getValue()); assertEquals(val2.toString(), pe.toString()); assertTrue(pe.isChanged()); pe.reset(); pe.markAsChanged(); assertTrue(pe.isChanged()); } /** * Unit test of methods {@link PrefEntry#equals} and {@link PrefEntry#hashCode}. */ @Test public void testEqualsContract() { EqualsVerifier.forClass(PrefEntry.class).usingGetClass() .withIgnoredFields("value", "defaultValue", "isDefault", "changed") .verify(); } }