/** | |
* Copyright (c) 2008-2011, http://www.snakeyaml.org | |
* | |
* 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.extensions.compactnotation; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
import junit.framework.TestCase; | |
import org.yaml.snakeyaml.Util; | |
import org.yaml.snakeyaml.Yaml; | |
import org.yaml.snakeyaml.constructor.Constructor; | |
public class CompactConstructorExampleTest extends TestCase { | |
private Object load(String fileName) { | |
CompactConstructor compact = new CompactConstructor(); | |
Yaml yaml = new Yaml(compact); | |
String doc = Util.getLocalResource("compactnotation/" + fileName); | |
Object obj = yaml.load(doc); | |
assertNotNull(obj); | |
return obj; | |
} | |
public void test1() { | |
Object obj = load("example1.yaml"); | |
assertEquals(new Container(), obj); | |
} | |
public void test2() { | |
Object obj = load("example2.yaml"); | |
assertEquals(new Container("title"), obj); | |
} | |
public void test3() { | |
Container obj = (Container) load("example3.yaml"); | |
assertEquals(new Container("title3"), obj); | |
assertEquals("title3", obj.getTitle()); | |
assertEquals("parent", obj.getName()); | |
assertEquals("123", obj.getId()); | |
} | |
public void test4() { | |
Object obj = load("example4.yaml"); | |
// System.out.println(obj); | |
Container container = (Container) obj; | |
assertNotNull(obj); | |
assertEquals(new Container("title4"), obj); | |
assertEquals("title4", container.getTitle()); | |
assertEquals("child4", container.getName()); | |
assertEquals("444", container.getId()); | |
} | |
public void test5() { | |
Object obj = load("example5.yaml"); | |
// System.out.println(obj); | |
Container container = (Container) obj; | |
assertNotNull(obj); | |
assertEquals(new Container("title4"), obj); | |
assertEquals("title4", container.getTitle()); | |
assertEquals("child5", container.getName()); | |
assertEquals("ID555", container.getId()); | |
} | |
public void test6() { | |
Object obj = load("example6.yaml"); | |
// System.out.println(obj); | |
Container container = (Container) obj; | |
assertNotNull(obj); | |
assertEquals(new Container("title4"), obj); | |
assertEquals("title4", container.getTitle()); | |
assertEquals("child6", container.getName()); | |
assertEquals("ID6", container.getId()); | |
} | |
public void test7() { | |
Object obj = load("example7.yaml"); | |
// System.out.println(obj); | |
Container container = (Container) obj; | |
assertNotNull(obj); | |
assertEquals(new Container("The title"), obj); | |
assertEquals("The title", container.getTitle()); | |
assertEquals("child7", container.getName()); | |
assertEquals("id7", container.getId()); | |
} | |
@SuppressWarnings("unchecked") | |
// TODO it is unclear how the result should look like for CON | |
public void test9() { | |
Map<String, Object> map = (Map<String, Object>) load("example9.yaml"); | |
assertEquals(1, map.size()); | |
Map<Container, Map<String, String>> containers = (Map<Container, Map<String, String>>) map | |
.get("something"); | |
// System.out.println(obj); | |
assertEquals(2, containers.size()); | |
for (Container c : containers.keySet()) { | |
assertTrue(c.getId().matches("id\\d")); | |
assertEquals(1, containers.get(c).size()); | |
} | |
} | |
@SuppressWarnings("unchecked") | |
public void test10() { | |
Map<String, Object> map = (Map<String, Object>) load("example10.yaml"); | |
assertEquals(1, map.size()); | |
List<Container> containers = (List<Container>) map.get("something"); | |
// System.out.println(obj); | |
assertEquals(3, containers.size()); | |
for (Container c : containers) { | |
assertTrue(c.toString(), c.getId().matches("id\\d+")); | |
assertTrue(c.toString(), c.getName().matches("child\\d+")); | |
// System.out.println(c); | |
} | |
} | |
public void test11withoutPackageNames() { | |
Constructor compact = new PackageCompactConstructor( | |
"org.yaml.snakeyaml.extensions.compactnotation"); | |
Yaml yaml = new Yaml(compact); | |
String doc = Util.getLocalResource("compactnotation/example11.yaml"); | |
Box box = (Box) yaml.load(doc); | |
assertNotNull(box); | |
assertEquals("id11", box.getId()); | |
assertEquals("Main box", box.getName()); | |
Item top = box.getTop(); | |
assertEquals("id003", top.getId()); | |
assertEquals("25.0", top.getPrice()); | |
assertEquals("parrot", top.getName()); | |
Item bottom = box.getBottom(); | |
assertEquals("id004", bottom.getId()); | |
assertEquals("3.5", bottom.getPrice()); | |
assertEquals("sweet", bottom.getName()); | |
} | |
public void test12withList() { | |
Constructor compact = new TableCompactConstructor( | |
"org.yaml.snakeyaml.extensions.compactnotation"); | |
Yaml yaml = new Yaml(compact); | |
String doc = Util.getLocalResource("compactnotation/example12.yaml"); | |
Table table = (Table) yaml.load(doc); | |
assertNotNull(table); | |
assertEquals("id12", table.getId()); | |
assertEquals("A table", table.getName()); | |
List<Row> rows = table.getRows(); | |
assertEquals(3, rows.size()); | |
Iterator<Row> iter = rows.iterator(); | |
Row first = iter.next(); | |
assertEquals("id111", first.getId()); | |
assertEquals("I think; therefore I am.", first.getDescription()); | |
assertEquals(0.125, first.getRatio(), 0.000000001); | |
assertEquals(15, first.getSize()); | |
Row second = iter.next(); | |
assertEquals("id222", second.getId()); | |
assertEquals("We do not need new lines here, just replace them all with spaces\n", | |
second.getDescription()); | |
assertEquals(0.333, second.getRatio(), 0.000000001); | |
assertEquals(17, second.getSize()); | |
Row third = iter.next(); | |
assertEquals("id333", third.getId()); | |
assertEquals( | |
"Please preserve all\nthe lines because they may be\nimportant, but do not include the last one !!!", | |
third.getDescription()); | |
assertEquals(0.88, third.getRatio(), 0.000000001); | |
assertEquals(52, third.getSize()); | |
} | |
} |