1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.constructor;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import junit.framework.TestCase;
23
24 import org.yaml.snakeyaml.Yaml;
25 import org.yaml.snakeyaml.composer.Composer;
26 import org.yaml.snakeyaml.parser.Parser;
27 import org.yaml.snakeyaml.parser.ParserImpl;
28 import org.yaml.snakeyaml.reader.StreamReader;
29 import org.yaml.snakeyaml.resolver.Resolver;
30
31 public class ConstructorSequenceTest extends TestCase {
32
33 public void testGetList() {
34 String data = "[ 1, 2, 3 ]";
35 List<Object> list = construct(new CustomConstructor(), data);
36 assertNotNull(list);
37 assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
38 }
39
40 public void testGetArrayList() {
41 String data = "[ 1, 2, 3 ]";
42 List<Object> list = construct(data);
43 assertNotNull(list);
44 assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
45 }
46
47 public void testDumpList() {
48 List<Integer> l = new ArrayList<Integer>(2);
49 l.add(1);
50 l.add(2);
51 Yaml yaml = new Yaml();
52 String result = yaml.dump(l);
53 assertEquals("[1, 2]\n", result);
54 }
55
56 public void testDumpListSameIntegers() {
57 List<Integer> l = new ArrayList<Integer>(2);
58 l.add(1);
59 l.add(1);
60 Yaml yaml = new Yaml();
61 String result = yaml.dump(l);
62 assertEquals("[1, 1]\n", result);
63 }
64
65 private List<Object> construct(String data) {
66 return construct(new Constructor(), data);
67 }
68
69 @SuppressWarnings("unchecked")
70 private List<Object> construct(Constructor constructor, String data) {
71 StreamReader reader = new StreamReader(data);
72 Parser parser = new ParserImpl(reader);
73 Resolver resolver = new Resolver();
74 Composer composer = new Composer(parser, resolver);
75 constructor.setComposer(composer);
76 List<Object> result = (List<Object>) constructor.getSingleData(Object.class);
77 return result;
78 }
79
80 class CustomConstructor extends Constructor {
81 @Override
82 protected List<Object> createDefaultList(int initSize) {
83 return new ArrayList<Object>(initSize);
84 }
85 }
86 }