@Test public void test_13() { String s = "a {\n" + " c {foo = 'bar'}\n" + "}\n" + "b.a.c.foo = 'foobar'\n" + ""; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(2, config.size()); Assert.assertEquals("foobar", ((Map) ((Map) ((Map) config.get("b")).get("a")).get("c")).get("foo")); Assert.assertEquals("bar", ((Map) ((Map) config.get("a")).get("c")).get("foo")); }
@Test public void test_4() { String s = "a { b { c = 'value'} }"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("value", ((Map) ((Map) config.get("a")).get("b")).get("c")); }
@Test public void test_12() { String s = "a {\n" + " c {foo = 'bar'}\n" + "}\n" + "b.a.c {" + "foo = 'foobar'\n" + "}"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(2, config.size()); Assert.assertEquals("foobar", ((Map) ((Map) ((Map) config.get("b")).get("a")).get("c")).get("foo")); Assert.assertEquals("bar", ((Map) ((Map) config.get("a")).get("c")).get("foo")); }
@Test public void test_5() { String s = "a { b = 'value'; c = 'value 2' }"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("value", ((Map) config.get("a")).get("b")); Assert.assertEquals("value 2", ((Map) config.get("a")).get("c")); }
@Test public void test_7() { Config config = new Config(); EvalTools.prepare("a { b = 1 }").get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals(1, ((Map) config.get("a")).size()); Assert.assertEquals(1, ((Map) config.get("a")).get("b")); EvalTools.prepare("a { c = 2 }").get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals(2, ((Map) config.get("a")).size()); Assert.assertEquals(1, ((Map) config.get("a")).get("b")); Assert.assertEquals(2, ((Map) config.get("a")).get("c")); }
@Test public void test_8() { String s = "foo = 'foo'\n" + "sub { bar = \"$foo\"}\n" + "foobar = \"${foo}${sub.bar}\""; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(3, config.size()); Assert.assertEquals("foo", config.get("foo")); Assert.assertEquals("foo", String.valueOf(((Map) config.get("sub")).get("bar"))); Assert.assertEquals("foofoo", String.valueOf(config.get("foobar"))); }
@Test public void test_2() { String s = "a.b = 'value'\n" + "a.c = 'value 2'"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("value", ((Map) config.get("a")).get("b")); Assert.assertEquals("value 2", ((Map) config.get("a")).get("c")); }
@Test public void test_3() { String s = "a { b = 'value' }"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("value", ((Map) config.get("a")).get("b")); }
@Test public void test_11() { String s = "a {\n" + " foo = 'bar'\n" + "}\n" + "b {\n" + " a {" + "foo = 'foobar'\n" + "\n}\n" + "}"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(2, config.size()); Assert.assertEquals("foobar", ((Map) ((Map) config.get("b")).get("a")).get("foo")); Assert.assertEquals("bar", ((Map) config.get("a")).get("foo")); }
@Test public void test_6() { String s = "a { ['user', 'password'].each {\n" + // "this.\"${it}\" = 'secret'\n" + // not implemented dynamic filed name yet "this[\"${it}\"] = 'secret'\n" + "} }"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("secret", ((Map) config.get("a")).get("user")); Assert.assertEquals("secret", ((Map) config.get("a")).get("password")); }
@Test public void test_10() { String s = "a {\n" + " foo = 'bar'\n" + "}\n" + "b {\n" + "a = 'foo'\n" + "}"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(2, config.size()); Assert.assertEquals("foo", ((Map) config.get("b")).get("a")); Assert.assertEquals("bar", ((Map) config.get("a")).get("foo")); }
@Test public void test_merge_1() { Config configA = new Config(); Config configB = new Config(); EvalTools.prepare("a { b = 1 }").get(configA); EvalTools.prepare("a { c = 2 }").get(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(1, ((Map) configA.get("a")).size()); Assert.assertEquals(1, ((Map) configA.get("a")).get("b")); configA.merge(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(2, ((Map) configA.get("a")).size()); Assert.assertEquals(1, ((Map) configA.get("a")).get("b")); Assert.assertEquals(2, ((Map) configA.get("a")).get("c")); }
@Test public void test_merge_3() { Config configA = new Config(); Config configB = new Config(); EvalTools.prepare("a = 1").get(configA); EvalTools.prepare("a { c = 2 }").get(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(1, configA.get("a")); configA.merge(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(1, ((Map) configA.get("a")).size()); Assert.assertEquals(2, ((Map) configA.get("a")).get("c")); }
@Test public void test_merge_2() { Config configA = new Config(); Config configB = new Config(); EvalTools.prepare("a { b = 1 }").get(configA); EvalTools.prepare("a = 1").get(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(1, ((Map) configA.get("a")).size()); Assert.assertEquals(1, ((Map) configA.get("a")).get("b")); configA.merge(configB); Assert.assertEquals(1, configA.size()); Assert.assertEquals(1, configA.get("a")); }
@Test public void test_1() { String s = "key = 'value'"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertEquals("value", config.get("key")); }
@Test public void test_empty_closure() { String s = "a {\n" + "}"; Expression expression = EvalTools.prepare(s); Config config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertTrue(config.get("a") instanceof Config); s = "a {}"; expression = EvalTools.prepare(s); config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertTrue(config.get("a") instanceof Config); s = "a {\n" + "\n" + "}"; expression = EvalTools.prepare(s); config = new Config(); expression.get(config); Assert.assertEquals(1, config.size()); Assert.assertTrue(config.get("a") instanceof Config); }