1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue74;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import junit.framework.TestCase;
22
23 import org.yaml.snakeyaml.Util;
24 import org.yaml.snakeyaml.Yaml;
25
26 public class ArrayBeanTest extends TestCase {
27
28 public void testArrayProperty() {
29 ArrayMember[] members = new ArrayMember[3];
30 members[0] = new ArrayMember("Foo", 21);
31 members[1] = new ArrayMember("Bar", 23);
32 members[2] = new ArrayMember("Hue Long Hair", 25);
33 ArrayBean bean = new ArrayBean();
34 bean.setId("ID123");
35 bean.setNumber(7);
36 bean.setMembers(members);
37 bean.openMembers = new ArrayMember[] { new ArrayMember("OpenFoo", 1000),
38 new ArrayMember("OpenBar", 2000) };
39 List<ArrayMember> list = new ArrayList<ArrayMember>(2);
40 list.add(new ArrayMember("John", 111));
41 list.add(new ArrayMember("Tony", 222));
42 bean.setList(list);
43 Yaml yaml = new Yaml();
44 String output = yaml.dumpAsMap(bean);
45
46 assertEquals(Util.getLocalResource("issues/issue74-array1.txt"), output);
47 Yaml beanLoader = new Yaml();
48 ArrayBean parsed = beanLoader.loadAs(output, ArrayBean.class);
49
50 assertEquals(3, parsed.getMembers().length);
51 assertEquals(2, parsed.openMembers.length);
52 assertEquals(2, parsed.getList().size());
53 assertEquals("ID123", parsed.getId());
54 assertEquals(7, parsed.getNumber());
55 for (ArrayMember member : parsed.getMembers()) {
56 assertTrue((member.getAge() >= 21) && (member.getAge() <= 25));
57 }
58 }
59
60 public static class ArrayBean {
61 private String id;
62 private int number;
63 private ArrayMember[] members;
64 public ArrayMember[] openMembers;
65 private List<ArrayMember> list;
66
67 public String getId() {
68 return id;
69 }
70
71 public void setId(String id) {
72 this.id = id;
73 }
74
75 public int getNumber() {
76 return number;
77 }
78
79 public void setNumber(int number) {
80 this.number = number;
81 }
82
83 public ArrayMember[] getMembers() {
84 return members;
85 }
86
87 public void setMembers(ArrayMember[] members) {
88 this.members = members;
89 }
90
91 public List<ArrayMember> getList() {
92 return list;
93 }
94
95 public void setList(List<ArrayMember> list) {
96 this.list = list;
97 }
98 }
99
100 public static class ArrayMember {
101 private String name;
102 private int age;
103
104 public ArrayMember(String name, int age) {
105 this.name = name;
106 this.age = age;
107 }
108
109 public ArrayMember() {
110 this.name = "NoName";
111 this.age = 0;
112 }
113
114 public String getName() {
115 return name;
116 }
117
118 public void setName(String name) {
119 this.name = name;
120 }
121
122 public int getAge() {
123 return age;
124 }
125
126 public void setAge(int age) {
127 this.age = age;
128 }
129
130 @Override
131 public boolean equals(Object obj) {
132 if (obj instanceof ArrayMember) {
133 ArrayMember m = (ArrayMember) obj;
134 return age == m.age;
135 } else {
136 return false;
137 }
138 }
139
140 @Override
141 public int hashCode() {
142 return age;
143 }
144
145 @Override
146 public String toString() {
147 return "ArrayMember age=" + age;
148 }
149 }
150 }