1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml;
17
18 import java.io.StringReader;
19 import java.util.List;
20
21 import junit.framework.TestCase;
22
23 import org.yaml.snakeyaml.error.Mark;
24 import org.yaml.snakeyaml.nodes.MappingNode;
25 import org.yaml.snakeyaml.nodes.Node;
26 import org.yaml.snakeyaml.nodes.NodeId;
27 import org.yaml.snakeyaml.nodes.NodeTuple;
28 import org.yaml.snakeyaml.nodes.ScalarNode;
29 import org.yaml.snakeyaml.nodes.Tag;
30 import org.yaml.snakeyaml.resolver.Resolver;
31
32 public class LoaderTest extends TestCase {
33
34 public void testCompose1() {
35 Yaml loader = new Yaml();
36 String yaml = "abc: 3";
37 MappingNode node = (MappingNode) loader.compose(new StringReader(yaml));
38 List<NodeTuple> nodes = node.getValue();
39 assertEquals(1, nodes.size());
40 NodeTuple pairs = nodes.get(0);
41 ScalarNode key = (ScalarNode) pairs.getKeyNode();
42 assertEquals(Tag.STR, key.getTag());
43 assertEquals("abc", key.getValue());
44
45 ScalarNode value = (ScalarNode) pairs.getValueNode();
46 assertEquals(Tag.INT, value.getTag());
47 assertEquals("3", value.getValue());
48
49 assertEquals(
50 "<org.yaml.snakeyaml.nodes.MappingNode (tag=tag:yaml.org,2002:map, values={ key=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=abc)>; value=<NodeTuple keyNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=abc)>; valueNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:int, value=3)>> })>",
51 node.toString());
52 }
53
54 @SuppressWarnings("deprecation")
55 public void testCompose2() {
56 LoaderOptions options = new LoaderOptions();
57 Yaml loader = new Yaml(options);
58 String yaml = "3";
59 ScalarNode node = (ScalarNode) loader.compose(new StringReader(yaml));
60 assertEquals(Tag.INT, node.getTag());
61 assertEquals("3", node.getValue());
62
63 assertEquals(Character.valueOf('\u0000'), node.getStyle());
64 assertEquals(Object.class, node.getType());
65 Mark mark = node.getStartMark();
66 assertEquals(0, mark.getColumn());
67 assertEquals(0, mark.getLine());
68 assertEquals("'reader'", mark.getName());
69 assertEquals(" 3\n ^", mark.get_snippet());
70 assertEquals("<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:int, value=3)>",
71 node.toString());
72 }
73
74 public void testComposeAll() {
75 Yaml loader = new Yaml();
76 String yaml = "abc: 3\n---\n2\n---\n- qwe\n- asd\n";
77 int counter = 0;
78 for (Node node : loader.composeAll(new StringReader(yaml))) {
79 assertNotNull(node);
80 switch (counter++) {
81 case 0:
82 assertEquals(NodeId.mapping, node.getNodeId());
83 break;
84 case 1:
85 assertEquals(NodeId.scalar, node.getNodeId());
86 break;
87 case 2:
88 assertEquals(NodeId.sequence, node.getNodeId());
89 break;
90 default:
91 fail("Unexpected document.");
92 }
93 }
94 }
95
96 @SuppressWarnings("deprecation")
97 public void testDeprecated() {
98 Yaml yaml = new Yaml(new Loader());
99 yaml.load("123");
100 yaml = new Yaml(new Loader(), new Dumper());
101 yaml.load("123");
102 yaml = new Yaml(new Loader(), new Dumper(), new Resolver());
103 yaml.load("123");
104 }
105 }