package aQute.configurable; import java.util.Arrays; import java.util.Collections; import java.util.List; import junit.framework.TestCase; public class ConfigurableTest extends TestCase { interface C { @Config(deflt = "abc\\,def,ghi") List<String> foo(); @Config(deflt = "abc\\,def|ghi") List<String> bar(); } public void testDefault() { C c = Configurable.createConfigurable(C.class, Collections.emptyMap()); assertEquals(Arrays.asList("abc,def", "ghi"), c.foo()); assertEquals(Arrays.asList("abc,def", "ghi"), c.foo()); } public void testSimple() { assertEquals(Arrays.asList("abc|def"), Configurable.unescape("abc\\|def")); assertEquals(Arrays.asList("abc", "def"), Configurable.unescape("abc,def")); assertEquals(Arrays.asList("abc,def"), Configurable.unescape("abc\\,def")); assertEquals(Arrays.asList("abc", "def"), Configurable.unescape("abc , def")); assertEquals(Arrays.asList("abc", "def"), Configurable.unescape(" abc , def ")); assertEquals(Arrays.asList(" abc", "def"), Configurable.unescape(" \\ abc , def ")); assertEquals(Arrays.asList("a b c", "def"), Configurable.unescape(" a b c , def ")); assertEquals(Arrays.asList("\\ a b c", "def"), Configurable.unescape(" \\\\ a b c , def ")); } }