1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.issues.issue10;
18
19 import java.util.ArrayList;
20 import java.util.Iterator;
21
22 import junit.framework.TestCase;
23
24 import org.yaml.snakeyaml.Util;
25 import org.yaml.snakeyaml.Yaml;
26
27 public class BasicDumpTest extends TestCase {
28
29 public void testTag() {
30 DataSource base = new DataSource();
31 JDBCDataSource baseJDBC = new JDBCDataSource();
32 baseJDBC.setParent(base);
33
34 ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
35
36 dataSources.add(base);
37 dataSources.add(baseJDBC);
38
39 DataSources ds = new DataSources();
40 ds.setDataSources(dataSources);
41
42 Yaml yaml = new Yaml();
43 String output = yaml.dump(ds);
44
45 String etalon = Util.getLocalResource("javabeans/issue10-1.yaml");
46 assertEquals(etalon.trim(), output.trim());
47 Object obj = yaml.load(output);
48 DataSources dsOut = (DataSources) obj;
49 Iterator<DataSource> iter = dsOut.getDataSources().iterator();
50 assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
51 assertTrue(iter.next() instanceof JDBCDataSource);
52 }
53
54 public void testTag2() {
55 DataSource base = new DataSource();
56 JDBCDataSource baseJDBC = new JDBCDataSource();
57 baseJDBC.setParent(base);
58
59 ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
60 dataSources.add(base);
61 dataSources.add(baseJDBC);
62
63 DataSources ds = new DataSources();
64 ds.setDataSources(dataSources);
65
66 Yaml yaml = new Yaml();
67 String output = yaml.dumpAsMap(ds);
68
69 String etalon = Util.getLocalResource("javabeans/issue10-2.yaml");
70 assertEquals(etalon.trim(), output.trim());
71 }
72
73
74
75
76 public void testTag3() {
77 DataSource base = new DataSource();
78 JDBCDataSource baseJDBC = new JDBCDataSource();
79 baseJDBC.setParent(base);
80
81 ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
82 dataSources.add(baseJDBC);
83 dataSources.add(base);
84
85 DataSources ds = new DataSources();
86 ds.setDataSources(dataSources);
87
88 Yaml yaml = new Yaml();
89 String output = yaml.dumpAsMap(ds);
90
91 String etalon = Util.getLocalResource("javabeans/issue10-3.yaml");
92 assertEquals(etalon.trim(), output.trim());
93
94 Yaml beanLoader = new Yaml();
95 DataSources bean = beanLoader.loadAs(output, DataSources.class);
96 Iterator<DataSource> iter = bean.getDataSources().iterator();
97 assertTrue(iter.next() instanceof JDBCDataSource);
98 assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
99 }
100 }