1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.types;
17
18 import java.util.List;
19 import java.util.Map;
20
21 import org.yaml.snakeyaml.YamlDocument;
22
23
24
25
26 public class MergeTagTest extends AbstractTest {
27
28 @SuppressWarnings("unchecked")
29 public void testMerge() {
30 YamlDocument document = new YamlDocument("types/merge.yaml");
31 List<Object> list = (List<Object>) document.getNativeData();
32 assertEquals(8, list.size());
33 Map<Object, Object> center = (Map<Object, Object>) list.get(0);
34 assertEquals(2, center.size());
35 assertEquals(new Integer(1), center.get("x"));
36 assertEquals(new Integer(2), center.get("y"));
37
38 Map<Object, Object> left = (Map<Object, Object>) list.get(1);
39 assertEquals(2, left.size());
40 assertEquals(left.get("x").getClass().toString(), new Integer(0), left.get("x"));
41 assertEquals(new Integer(2), left.get("y"));
42
43 Map<Object, Object> big = (Map<Object, Object>) list.get(2);
44 assertEquals(1, big.size());
45 assertEquals(new Integer(10), big.get("r"));
46
47 Map<Object, Object> small = (Map<Object, Object>) list.get(3);
48 assertEquals(1, small.size());
49 assertEquals(new Integer(1), small.get("r"));
50
51 Map<Object, Object> explicit = (Map<Object, Object>) list.get(4);
52 assertEquals(4, explicit.size());
53 assertEquals(new Integer(1), explicit.get("x"));
54 assertEquals(new Integer(2), explicit.get("y"));
55 assertEquals(new Integer(10), explicit.get("r"));
56 assertEquals("center/big", explicit.get("label"));
57
58 Map<Object, Object> merged1 = (Map<Object, Object>) list.get(5);
59 assertEquals(explicit, merged1);
60 assertNotSame(explicit, merged1);
61
62 Map<Object, Object> merged2 = (Map<Object, Object>) list.get(6);
63 assertEquals(explicit, merged2);
64 assertNotSame(explicit, merged2);
65
66 Map<Object, Object> merged3 = (Map<Object, Object>) list.get(7);
67 assertEquals(explicit, merged3);
68 assertNotSame(explicit, merged3);
69 }
70 }