blob: c2bc0b224884a4730640e17cf4b587efacd84dac [file] [log] [blame]
/**
* Copyright (c) 2008-2009 Andrey Somov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.yaml.snakeyaml;
import java.io.StringReader;
import java.util.List;
import junit.framework.TestCase;
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.nodes.MappingNode;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.NodeId;
import org.yaml.snakeyaml.nodes.NodeTuple;
import org.yaml.snakeyaml.nodes.ScalarNode;
import org.yaml.snakeyaml.nodes.Tags;
import org.yaml.snakeyaml.resolver.Resolver;
public class LoaderTest extends TestCase {
public void testCompose1() {
Loader loader = new Loader();
loader.setResolver(new Resolver());
String yaml = "abc: 3";
MappingNode node = (MappingNode) loader.compose(new StringReader(yaml));
List<NodeTuple> nodes = node.getValue();
assertEquals(1, nodes.size());
NodeTuple pairs = nodes.get(0);
ScalarNode key = (ScalarNode) pairs.getKeyNode();
assertEquals(Tags.STR, key.getTag());
assertEquals("abc", key.getValue());
//
ScalarNode value = (ScalarNode) pairs.getValueNode();
assertEquals(Tags.INT, value.getTag());
assertEquals("3", value.getValue());
//
assertTrue(node
.toString()
.startsWith(
"<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=Node<"));
assertTrue(node.toString().endsWith("> })>"));
}
public void testCompose2() {
Loader loader = new Loader();
loader.setResolver(new Resolver());
String yaml = "3";
ScalarNode node = (ScalarNode) loader.compose(new StringReader(yaml));
assertEquals(Tags.INT, node.getTag());
assertEquals("3", node.getValue());
// not sure whether it should be null or 0
assertEquals(new Character('\u0000'), node.getStyle());
assertEquals(Object.class, node.getType());
Mark mark = node.getStartMark();
assertEquals(0, mark.getColumn());
assertEquals(0, mark.getLine());
assertEquals("<reader>", mark.getName());
assertNull(mark.get_snippet());
assertEquals("<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:int, value=3)>",
node.toString());
}
public void testComposeAll() {
Loader loader = new Loader();
loader.setResolver(new Resolver());
String yaml = "abc: 3\n---\n2\n---\n- qwe\n- asd\n";
int counter = 0;
for (Node node : loader.composeAll(new StringReader(yaml))) {
assertNotNull(node);
switch (counter++) {
case 0:
assertEquals(NodeId.mapping, node.getNodeId());
break;
case 1:
assertEquals(NodeId.scalar, node.getNodeId());
break;
case 2:
assertEquals(NodeId.sequence, node.getNodeId());
break;
default:
fail("Unexpected document.");
}
}
}
}