My favorites | Sign in
Project Home Downloads Wiki Issues Source
Repository:
Checkout   Browse   Changes   Clones    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
* Copyright (c) 2008-2012, 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 examples.collections;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;

/**
* Test ListBean->List<Developer> developers <br/>
* Developer class must be properly recognised
*/
public class TypeSafeListTest extends TestCase {
public void testDumpList() {
ListBean1 bean = new ListBean1();
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
bean.setChildren(list);
List<Developer> developers = new ArrayList<Developer>();
developers.add(new Developer("Fred", "creator"));
developers.add(new Developer("John", "committer"));
bean.setDevelopers(developers);
Yaml yaml = new Yaml();
String output = yaml.dumpAsMap(bean);
// System.out.println(output);
String etalon = Util.getLocalResource("examples/list-bean-1.yaml");
assertEquals(etalon, output);
}

public void testLoadList() {
String output = Util.getLocalResource("examples/list-bean-1.yaml");
// System.out.println(output);
Yaml beanLoader = new Yaml();
ListBean1 parsed = beanLoader.loadAs(output, ListBean1.class);
assertNotNull(parsed);
List<String> list2 = parsed.getChildren();
assertEquals(2, list2.size());
assertEquals("aaa", list2.get(0));
assertEquals("bbb", list2.get(1));
List<Developer> developers = parsed.getDevelopers();
assertEquals(2, developers.size());
assertEquals("Developer must be recognised.", Developer.class, developers.get(0).getClass());
Developer fred = developers.get(0);
assertEquals("Fred", fred.getName());
assertEquals("creator", fred.getRole());
}

public static class ListBean1 {
private List<String> children;
private String name;
private List<Developer> developers;

public ListBean1() {
name = "Bean123";
}

public List<String> getChildren() {
return children;
}

public void setChildren(List<String> children) {
this.children = children;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<Developer> getDevelopers() {
return developers;
}

public void setDevelopers(List<Developer> developers) {
this.developers = developers;
}
}

public static class Developer {
private String name;
private String role;

public Developer() {
}

public Developer(String name, String role) {
this.name = name;
this.role = role;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getRole() {
return role;
}

public void setRole(String role) {
this.role = role;
}
}
}

Change log

0b2539b65783 by py4fun on Jan 6, 2012   Diff
Update year to 2012
Go to: 
Sign in to write a code review

Older revisions

4c985ca248ff by py4fun on Jan 5, 2012   Diff
Use EolExtension to force LF  as line
separator for all operating systems
3035e7a8e39d by py4fun on Jul 21, 2011   Diff
 Issue 124 : rename Yaml.dumpAs(data) to
Yaml.dumpAsMap(data)
2e5111f5a6e2 by py4fun on Jul 21, 2011   Diff
 Issue 124 : add one more Yaml.dumpAs()
method and get rid of its side effects
All revisions of this file

File info

Size: 3795 bytes, 128 lines
Powered by Google Project Hosting