1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.extensions.compactnotation;
18
19 import java.util.Iterator;
20 import java.util.List;
21 import java.util.Map;
22
23 import junit.framework.TestCase;
24
25 import org.yaml.snakeyaml.Util;
26 import org.yaml.snakeyaml.Yaml;
27 import org.yaml.snakeyaml.constructor.Constructor;
28
29 public class CompactConstructorExampleTest extends TestCase {
30
31 private Object load(String fileName) {
32 CompactConstructor compact = new CompactConstructor();
33 Yaml yaml = new Yaml(compact);
34 String doc = Util.getLocalResource("compactnotation/" + fileName);
35 Object obj = yaml.load(doc);
36 assertNotNull(obj);
37 return obj;
38 }
39
40 public void test1() {
41 Object obj = load("example1.yaml");
42 assertEquals(new Container(), obj);
43 }
44
45 public void test2() {
46 Object obj = load("example2.yaml");
47 assertEquals(new Container("title"), obj);
48 }
49
50 public void test3() {
51 Container obj = (Container) load("example3.yaml");
52 assertEquals(new Container("title3"), obj);
53 assertEquals("title3", obj.getTitle());
54 assertEquals("parent", obj.getName());
55 assertEquals("123", obj.getId());
56 }
57
58 public void test4() {
59 Object obj = load("example4.yaml");
60
61 Container container = (Container) obj;
62 assertNotNull(obj);
63 assertEquals(new Container("title4"), obj);
64 assertEquals("title4", container.getTitle());
65 assertEquals("child4", container.getName());
66 assertEquals("444", container.getId());
67 }
68
69 public void test5() {
70 Object obj = load("example5.yaml");
71
72 Container container = (Container) obj;
73 assertNotNull(obj);
74 assertEquals(new Container("title4"), obj);
75 assertEquals("title4", container.getTitle());
76 assertEquals("child5", container.getName());
77 assertEquals("ID555", container.getId());
78 }
79
80 public void test6() {
81 Object obj = load("example6.yaml");
82
83 Container container = (Container) obj;
84 assertNotNull(obj);
85 assertEquals(new Container("title4"), obj);
86 assertEquals("title4", container.getTitle());
87 assertEquals("child6", container.getName());
88 assertEquals("ID6", container.getId());
89 }
90
91 public void test7() {
92 Object obj = load("example7.yaml");
93
94 Container container = (Container) obj;
95 assertNotNull(obj);
96 assertEquals(new Container("The title"), obj);
97 assertEquals("The title", container.getTitle());
98 assertEquals("child7", container.getName());
99 assertEquals("id7", container.getId());
100 }
101
102 @SuppressWarnings("unchecked")
103
104 public void test9() {
105 Map<String, Object> map = (Map<String, Object>) load("example9.yaml");
106 assertEquals(1, map.size());
107 Map<Container, Map<String, String>> containers = (Map<Container, Map<String, String>>) map
108 .get("something");
109
110 assertEquals(2, containers.size());
111 for (Container c : containers.keySet()) {
112 assertTrue(c.getId().matches("id\\d"));
113 assertEquals(1, containers.get(c).size());
114 }
115 }
116
117 @SuppressWarnings("unchecked")
118 public void test10() {
119 Map<String, Object> map = (Map<String, Object>) load("example10.yaml");
120 assertEquals(1, map.size());
121 List<Container> containers = (List<Container>) map.get("something");
122
123 assertEquals(3, containers.size());
124 for (Container c : containers) {
125 assertTrue(c.toString(), c.getId().matches("id\\d+"));
126 assertTrue(c.toString(), c.getName().matches("child\\d+"));
127
128 }
129 }
130
131 public void test11withoutPackageNames() {
132 Constructor compact = new PackageCompactConstructor(
133 "org.yaml.snakeyaml.extensions.compactnotation");
134 Yaml yaml = new Yaml(compact);
135 String doc = Util.getLocalResource("compactnotation/example11.yaml");
136 Box box = (Box) yaml.load(doc);
137 assertNotNull(box);
138 assertEquals("id11", box.getId());
139 assertEquals("Main box", box.getName());
140 Item top = box.getTop();
141 assertEquals("id003", top.getId());
142 assertEquals("25.0", top.getPrice());
143 assertEquals("parrot", top.getName());
144 Item bottom = box.getBottom();
145 assertEquals("id004", bottom.getId());
146 assertEquals("3.5", bottom.getPrice());
147 assertEquals("sweet", bottom.getName());
148 }
149
150 public void test12withList() {
151 Constructor compact = new TableCompactConstructor(
152 "org.yaml.snakeyaml.extensions.compactnotation");
153 Yaml yaml = new Yaml(compact);
154 String doc = Util.getLocalResource("compactnotation/example12.yaml");
155 Table table = (Table) yaml.load(doc);
156 assertNotNull(table);
157 assertEquals("id12", table.getId());
158 assertEquals("A table", table.getName());
159 List<Row> rows = table.getRows();
160 assertEquals(3, rows.size());
161 Iterator<Row> iter = rows.iterator();
162 Row first = iter.next();
163 assertEquals("id111", first.getId());
164 assertEquals("I think; therefore I am.", first.getDescription());
165 assertEquals(0.125, first.getRatio(), 0.000000001);
166 assertEquals(15, first.getSize());
167 Row second = iter.next();
168 assertEquals("id222", second.getId());
169 assertEquals("We do not need new lines here, just replace them all with spaces\n",
170 second.getDescription());
171 assertEquals(0.333, second.getRatio(), 0.000000001);
172 assertEquals(17, second.getSize());
173 Row third = iter.next();
174 assertEquals("id333", third.getId());
175 assertEquals(
176 "Please preserve all\nthe lines because they may be\nimportant, but do not include the last one !!!",
177 third.getDescription());
178 assertEquals(0.88, third.getRatio(), 0.000000001);
179 assertEquals(52, third.getSize());
180 }
181 }