1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue149;
17
18 import java.util.Iterator;
19
20 import junit.framework.TestCase;
21
22 import org.yaml.snakeyaml.TypeDescription;
23 import org.yaml.snakeyaml.Util;
24 import org.yaml.snakeyaml.Yaml;
25 import org.yaml.snakeyaml.constructor.Constructor;
26 import org.yaml.snakeyaml.nodes.Tag;
27
28 public class GlobalDirectivesTest extends TestCase {
29 public void testOneDocument() {
30 String input = Util.getLocalResource("issues/issue149-one-document.yaml");
31
32 Constructor constr = new Constructor();
33 TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
34 "tag:ualberta.ca,2012:29"));
35 constr.addTypeDescription(description);
36 Yaml yaml = new Yaml(constr);
37 Iterator<Object> parsed = yaml.loadAll(input).iterator();
38 ComponentBean bean = (ComponentBean) parsed.next();
39 assertEquals(0, bean.getProperty1());
40 assertEquals("aaa", bean.getProperty2());
41 assertFalse(parsed.hasNext());
42 }
43
44 public void testDirectives() {
45 String input = Util.getLocalResource("issues/issue149-losing-directives.yaml");
46
47 Constructor constr = new Constructor();
48 TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
49 "tag:ualberta.ca,2012:" + 29));
50 constr.addTypeDescription(description);
51 Yaml yaml = new Yaml(constr);
52 Iterator<Object> parsed = yaml.loadAll(input).iterator();
53 ComponentBean bean1 = (ComponentBean) parsed.next();
54 assertEquals(0, bean1.getProperty1());
55 assertEquals("aaa", bean1.getProperty2());
56 ComponentBean bean2 = (ComponentBean) parsed.next();
57 assertEquals(3, bean2.getProperty1());
58 assertEquals("bbb", bean2.getProperty2());
59 assertFalse(parsed.hasNext());
60 }
61
62 public void testDirectives2() {
63 String input = Util.getLocalResource("issues/issue149-losing-directives-2.yaml");
64
65 Constructor constr = new Constructor();
66 TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
67 "tag:ualberta.ca,2012:" + 29));
68 constr.addTypeDescription(description);
69 Yaml yaml = new Yaml(constr);
70 Iterator<Object> parsed = yaml.loadAll(input).iterator();
71 ComponentBean bean1 = (ComponentBean) parsed.next();
72 assertEquals(0, bean1.getProperty1());
73 assertEquals("aaa", bean1.getProperty2());
74 ComponentBean bean2 = (ComponentBean) parsed.next();
75 assertEquals(3, bean2.getProperty1());
76 assertEquals("bbb", bean2.getProperty2());
77 assertFalse(parsed.hasNext());
78 }
79 }