@SuppressWarnings("unchecked") @Test public void testBindDoubleNestedMap() throws Exception { TargetWithNestedMap target = new TargetWithNestedMap(); bind( target, "nested.foo: bar\n" + "nested.bar.spam: bucket\n" + "nested.bar.value: 123\nnested.bar.foo: crap"); assertEquals(2, target.getNested().size()); assertEquals(3, ((Map<String, Object>) target.getNested().get("bar")).size()); assertEquals("123", ((Map<String, Object>) target.getNested().get("bar")).get("value")); assertEquals("bar", target.getNested().get("foo")); assertFalse(target.getNested().containsValue(target.getNested())); }
@SuppressWarnings("unchecked") @Test public void testBindDoubleNestedMapWithDotInKeys() throws Exception { TargetWithNestedMap target = new TargetWithNestedMap(); bind( target, "nested.foo: bar.key\n" + "nested[bar.key].spam: bucket\n" + "nested[bar.key].value: 123\nnested[bar.key].foo: crap"); assertEquals(2, target.getNested().size()); Map<String, Object> nestedMap = (Map<String, Object>) target.getNested().get("bar.key"); assertNotNull("nested map should be registered with 'bar.key'", nestedMap); assertEquals(3, nestedMap.size()); assertEquals("123", nestedMap.get("value")); assertEquals("bar.key", target.getNested().get("foo")); assertFalse(target.getNested().containsValue(target.getNested())); }
@Test public void testBindNestedMapBracketReferencedAndPeriods() throws Exception { TargetWithNestedMap target = new TargetWithNestedMap(); bind(target, "nested[foo]: bar\n" + "nested[foo.value]: 123"); assertEquals("123", target.getNested().get("foo.value")); }
@Test public void testBindNestedMap() throws Exception { TargetWithNestedMap target = new TargetWithNestedMap(); bind(target, "nested.foo: bar\n" + "nested.value: 123"); assertEquals("123", target.getNested().get("value")); }