package org.bukkit.configuration; import java.util.LinkedHashMap; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.bukkit.util.Vector; import org.junit.Test; import static org.junit.Assert.*; public abstract class ConfigurationTest { public abstract Configuration getConfig(); public Map getTestValues() { HashMap result = new LinkedHashMap(); result.put("integer", Integer.MIN_VALUE); result.put("string", "String Value"); result.put("long", Long.MAX_VALUE); result.put("true-boolean", true); result.put("false-boolean", false); result.put("vector", new Vector(12345.67, 64, -12345.6789)); result.put("list", Arrays.asList(1, 2, 3, 4, 5)); result.put("42", "The Answer"); return result; } /** * Test of addDefault method, of class Configuration. */ @Test public void testAddDefault() { Configuration config = getConfig(); Map values = getTestValues(); for (Map.Entry entry : values.entrySet()) { String path = entry.getKey(); Object object = entry.getValue(); config.addDefault(path, object); assertEquals(object, config.get(path)); assertTrue(config.contains(path)); assertFalse(config.isSet(path)); assertTrue(config.getDefaults().isSet(path)); } } /** * Test of addDefaults method, of class Configuration. */ @Test public void testAddDefaults_Map() { Configuration config = getConfig(); Map values = getTestValues(); config.addDefaults(values); for (Map.Entry entry : values.entrySet()) { String path = entry.getKey(); Object object = entry.getValue(); assertEquals(object, config.get(path)); assertTrue(config.contains(path)); assertFalse(config.isSet(path)); assertTrue(config.getDefaults().isSet(path)); } } /** * Test of addDefaults method, of class Configuration. */ @Test public void testAddDefaults_Configuration() { Configuration config = getConfig(); Map values = getTestValues(); Configuration defaults = getConfig(); for (Map.Entry entry : values.entrySet()) { defaults.set(entry.getKey(), entry.getValue()); } config.addDefaults(defaults); for (Map.Entry entry : values.entrySet()) { String path = entry.getKey(); Object object = entry.getValue(); assertEquals(object, config.get(path)); assertTrue(config.contains(path)); assertFalse(config.isSet(path)); assertTrue(config.getDefaults().isSet(path)); } } /** * Test of setDefaults method, of class Configuration. */ @Test public void testSetDefaults() { Configuration config = getConfig(); Map values = getTestValues(); Configuration defaults = getConfig(); for (Map.Entry entry : values.entrySet()) { defaults.set(entry.getKey(), entry.getValue()); } config.setDefaults(defaults); for (Map.Entry entry : values.entrySet()) { String path = entry.getKey(); Object object = entry.getValue(); assertEquals(object, config.get(path)); assertTrue(config.contains(path)); assertFalse(config.isSet(path)); assertTrue(config.getDefaults().isSet(path)); } } /** * Test creation of ConfigurationSection */ @Test public void testCreateSection() { Configuration config = getConfig(); Set set = new HashSet(); set.add("this"); set.add("this.test.sub"); set.add("this.test"); set.add("this.test.other"); config.createSection("this.test.sub"); config.createSection("this.test.other"); assertEquals(set, config.getKeys(true)); } /** * Test of getDefaults method, of class Configuration. */ @Test public void testGetDefaults() { Configuration config = getConfig(); Configuration defaults = getConfig(); config.setDefaults(defaults); assertEquals(defaults, config.getDefaults()); } }