/** | |
* 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."); | |
} | |
} | |
} | |
} |