1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue139;
17
18 import java.util.Map;
19
20 import junit.framework.TestCase;
21
22 import org.yaml.snakeyaml.Util;
23 import org.yaml.snakeyaml.Yaml;
24
25 public class MergeValueTest extends TestCase {
26
27 public void testNotUniqueSimple() {
28 String simple = "{key: 1, key: 2}";
29 Yaml yaml = new Yaml();
30 @SuppressWarnings("unchecked")
31 Map<String, Integer> map = (Map<String, Integer>) yaml.load(simple);
32 assertEquals(1, map.size());
33 assertEquals(new Integer(2), map.get("key"));
34 }
35
36 public void testMerge() {
37 check("issues/issue139-1.yaml");
38 check("issues/issue139-2.yaml");
39 }
40
41 private void check(String name) {
42 String input = Util.getLocalResource(name);
43
44 Yaml yaml = new Yaml();
45 @SuppressWarnings("unchecked")
46 Map<String, Object> map = (Map<String, Object>) yaml.load(input);
47 assertEquals(2, map.size());
48 assertTrue(map.containsKey("common"));
49 assertTrue(map.containsKey("production"));
50 assertEquals(map.get("common"), map.get("production"));
51 }
52
53
54
55
56
57
58 @SuppressWarnings("unchecked")
59 public void testMergeUnlessAlreadyExists() {
60 String input = Util.getLocalResource("issues/issue139-3.yaml");
61
62 Yaml yaml = new Yaml();
63 Map<String, Object> map = (Map<String, Object>) yaml.load(input);
64 assertEquals(2, map.size());
65 Map<String, Integer> common = (Map<String, Integer>) map.get("common");
66 Map<String, Integer> production = (Map<String, Integer>) map.get("production");
67 assertEquals(new Integer(2), common.get("key"));
68 assertEquals(new Integer(3), production.get("key"));
69 }
70 }