package org.dayatang.configuration.impl; import org.dayatang.utils.DateUtils; import org.junit.Test; import java.util.Date; import java.util.Properties; import static org.junit.Assert.*; public abstract class AbstractConfigurationTest { protected AbstractConfiguration instance; @Test public void testGetStringStringString() { assertEquals("yyyy-M-d", instance.getString("date.format", "yyyy-MM-dd")); assertEquals("yyyy-MM-dd", instance.getString("format", "yyyy-MM-dd")); } @Test public void testGetStringString() { assertEquals("yyyy-M-d", instance.getString("date.format")); assertEquals("", instance.getString("format")); assertEquals("张三", instance.getString("name")); } @Test public void testSetString() { instance.setString("date.format", "yyyy-MM-dd"); assertEquals("yyyy-MM-dd", instance.getString("date.format")); } @Test public void testGetIntStringInt() { assertEquals(15, instance.getInt("size", 20)); assertEquals(20, instance.getInt("size1", 20)); } @Test public void testGetIntString() { assertEquals(15, instance.getInt("size")); assertEquals(0, instance.getInt("size1")); } @Test public void testSetInt() { instance.setInt("size", 150); assertEquals(150, instance.getInt("size")); } @Test public void testGetLongStringLong() { assertEquals(15L, instance.getLong("size", 20L)); assertEquals(20L, instance.getLong("size1", 20L)); } @Test public void testGetLongString() { assertEquals(15L, instance.getLong("size")); assertEquals(0L, instance.getLong("size1")); } @Test public void testSetLong() { instance.setLong("size", 150L); assertEquals(150L, instance.getLong("size")); } @Test public void testGetDoubleStringDouble() { assertEquals(15D, instance.getDouble("size", 20D), 0.001); assertEquals(20D, instance.getDouble("size1", 20D), 0.001); } @Test public void testGetDoubleString() { assertEquals(15D, instance.getDouble("size"), 0.001); assertEquals(0D, instance.getDouble("size1"), 0.001); } @Test public void testSetDouble() { instance.setDouble("size", 150D); assertEquals(150D, instance.getDouble("size"), 0.001); } @Test public void testGetBooleanStringBoolean() { assertTrue(instance.getBoolean("closed", false)); assertTrue(instance.getBoolean("closed1", true)); } @Test public void testGetBooleanString() { assertTrue(instance.getBoolean("closed")); assertFalse(instance.getBoolean("closed1")); } @Test public void testSetBoolean() { instance.setBoolean("closed", false); assertFalse(instance.getBoolean("size")); } @Test public void testGetDateStringDate() { Date orig = DateUtils.parseDate("2002-05-11"); Date defaultDate = DateUtils.parseDate("2008-05-11"); assertEquals(orig, instance.getDate("birthday", defaultDate)); assertEquals(defaultDate, instance.getDate("birthday1", defaultDate)); } @Test public void testGetDateString() { Date orig = DateUtils.parseDate("2002-05-11"); assertEquals(orig, instance.getDate("birthday")); assertEquals(null, instance.getDate("birthday1")); } @Test public void testSetDate() { Date newDate = DateUtils.parseDate("2008-05-11"); instance.setDate("birthday", newDate); assertEquals(newDate, instance.getDate("birthday")); } @Test public void testGetObjectWithDefault() { Item orig = new Item(1, "abc", true); Item defaultItem = new Item(2, "xyz", false); assertEquals(orig, instance.getObject("theItem", Item.class, defaultItem)); assertEquals(defaultItem, instance.getObject("theItem1", Item.class, defaultItem)); } @Test public void testGetObjectWithoutDefault() { Item orig = new Item(1, "abc", true); assertEquals(orig, instance.getObject("theItem", Item.class)); assertNull(instance.getObject("theItem1", Item.class)); } @Test public void testSetObject() { Date newDate = DateUtils.parseDate("2008-05-11"); instance.setObject("theDay", newDate); assertEquals(newDate, instance.getObject("theDay", Date.class)); } @Test public void testGetProperties() { Properties properties = instance.getProperties(); assertEquals("15", properties.get("size")); } private class Item { private int id; private String name; private boolean disabled; private Item() { } private Item(int id, String name, boolean disabled) { this.id = id; this.name = name; this.disabled = disabled; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isDisabled() { return disabled; } public void setDisabled(boolean disabled) { this.disabled = disabled; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Item item = (Item) o; if (disabled != item.disabled) return false; if (id != item.id) return false; if (!name.equals(item.name)) return false; return true; } @Override public int hashCode() { int result = id; result = 31 * result + name.hashCode(); result = 31 * result + (disabled ? 1 : 0); return result; } @Override public String toString() { return "Item{" + "id=" + id + ", name='" + name + '\'' + ", disabled=" + disabled + '}'; } } }