/** | |
* 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.types; | |
import java.util.ArrayList; | |
import java.util.Collection; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.Map; | |
import org.yaml.snakeyaml.YamlDocument; | |
/** | |
* @see http://yaml.org/type/seq.html | |
*/ | |
public class SeqTagTest extends AbstractTest { | |
@SuppressWarnings("unchecked") | |
public void testSeq() { | |
YamlDocument document = new YamlDocument("types/seq.yaml"); | |
Map<String, List<String>> map = (Map<String, List<String>>) document.getNativeData(); | |
assertEquals(2, map.size()); | |
List<String> list1 = (List<String>) map.get("Block style"); | |
assertEquals(9, list1.size()); | |
assertEquals("Mercury", list1.get(0)); | |
assertEquals("Venus", list1.get(1)); | |
assertEquals("Earth", list1.get(2)); | |
assertEquals("Mars", list1.get(3)); | |
assertEquals("Jupiter", list1.get(4)); | |
assertEquals("Saturn", list1.get(5)); | |
assertEquals("Uranus", list1.get(6)); | |
assertEquals("Neptune", list1.get(7)); | |
assertEquals("Pluto", list1.get(8)); | |
// | |
List<String> list2 = (List<String>) map.get("Flow style"); | |
assertEquals(9, list2.size()); | |
assertEquals("Mercury", list2.get(0)); | |
assertEquals("Venus", list2.get(1)); | |
assertEquals("Earth", list2.get(2)); | |
assertEquals("Mars", list2.get(3)); | |
assertEquals("Jupiter", list2.get(4)); | |
assertEquals("Saturn", list2.get(5)); | |
assertEquals("Uranus", list2.get(6)); | |
assertEquals("Neptune", list2.get(7)); | |
assertEquals("Pluto", list2.get(8)); | |
// | |
assertEquals(list1, list2); | |
assertNotSame(list1, list2); | |
} | |
@SuppressWarnings("unchecked") | |
public void testCollection() { | |
Collection<Integer> collection = new LinkedList<Integer>(); | |
collection.add(1); | |
collection.add(2); | |
collection.add(3); | |
String output = dump(collection); | |
assertEquals("[1, 2, 3]\n", output); | |
Collection<Integer> obj = (Collection<Integer>) load(output); | |
// System.out.println(obj); | |
assertEquals(3, obj.size()); | |
assertTrue("Create ArrayList by default: " + obj.getClass().toString(), | |
obj instanceof ArrayList); | |
} | |
public void testArray() { | |
Integer[] array = new Integer[3]; | |
array[0] = new Integer(1); | |
array[1] = new Integer(1); | |
array[2] = new Integer(2); | |
String output = dump(array); | |
assertEquals("[1, 1, 2]\n", output); | |
} | |
public void testStringArray() { | |
String[] array = new String[] { "aaa", "bbb", "ccc" }; | |
String output = dump(array); | |
assertEquals("[aaa, bbb, ccc]\n", output); | |
} | |
public void testArrayPrimitives() { | |
int[] array = new int[3]; | |
array[0] = 1; | |
array[1] = 1; | |
array[2] = 2; | |
try { | |
dump(array); | |
fail("Arrays of primitives are not supported."); | |
} catch (RuntimeException e) { | |
assertEquals("Arrays of primitives are not fully supported.", e.getMessage()); | |
} | |
} | |
} |