package com.mastfrog.settings; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.junit.Test; import static org.junit.Assert.*; /** * * @author tim */ public class SettingsBuilderTest { @Test public void test() throws IOException { assertTrue(true); SettingsBuilder b = new SettingsBuilder(); Map<Character, String> m = new HashMap<>(); m.put('f', "foo"); m.put('b', "bar"); m.put('q', "quux"); b.parseCommandLineArguments("--foo", "23", "--bar", "57"); Settings s = b.build(); assertFalse(s instanceof MutableSettings); assertEquals(s + "", (Integer) 23, s.getInt("foo")); assertEquals(s + "", (Integer) 57, s.getInt("bar")); b = new SettingsBuilder(); b.parseCommandLineArguments(m, "-f", "23", "-b", "57", "-q"); s = b.build(); assertEquals(s + "", (Integer) 23, s.getInt("foo")); assertEquals(s + "", (Integer) 57, s.getInt("bar")); assertNull(s.getString("f")); assertNull(s.getString("b")); b = new SettingsBuilder(); b.parseCommandLineArguments("--foo", "--bar"); s = b.build(); assertEquals("true", s.getString("foo")); assertEquals("true", s.getString("bar")); b = new SettingsBuilder(); b.parseCommandLineArguments("--foo"); s = b.build(); assertEquals("true", s.getString("foo")); b = new SettingsBuilder(); b.parseCommandLineArguments(m, "-fbq"); s = b.build(); assertEquals("true", s.getString("foo")); assertEquals("true", s.getString("bar")); assertEquals("true", s.getString("quux")); } @Test public void testLayeredSettingsToProperties() throws IOException { SettingsBuilder b = new SettingsBuilder("foo") .add("foo", "bar").addSystemProperties().addEnv() .parseCommandLineArguments("--foo", "--baz"); Settings s = b.build(); assertTrue (s.getClass().getName(), s instanceof LayeredSettings); Properties p = s.toProperties(); assertTrue(p.keySet().toString(), p.keySet().equals(s.allKeys())); } }