1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.javabeans;
17
18 import java.util.ArrayList;
19 import java.util.List;
20 import java.util.Map;
21 import java.util.TreeMap;
22
23 import junit.framework.TestCase;
24
25 import org.yaml.snakeyaml.DumperOptions;
26 import org.yaml.snakeyaml.DumperOptions.FlowStyle;
27 import org.yaml.snakeyaml.TypeDescription;
28 import org.yaml.snakeyaml.Util;
29 import org.yaml.snakeyaml.Yaml;
30 import org.yaml.snakeyaml.constructor.Constructor;
31
32 public class HouseTest extends TestCase {
33
34
35
36 public void testDump1() {
37 House house = new House();
38 FrontDoor frontDoor = new FrontDoor("qaz1", 5);
39 frontDoor.setKeytype("qwerty123");
40 house.setFrontDoor(frontDoor);
41 List<Room> rooms = new ArrayList<Room>();
42 rooms.add(new Room("Hall"));
43 rooms.add(new Room("Kitchen"));
44 house.setRooms(rooms);
45 Map<String, String> reminders = new TreeMap<String, String>();
46 reminders.put("today", "do nothig");
47 reminders.put("tomorrow", "go shoping");
48 house.setReminders(reminders);
49 house.setNumber(1);
50 house.setStreet("Wall Street");
51 Yaml beanDumper = new Yaml();
52 String yaml = beanDumper.dumpAsMap(house);
53 String etalon = Util.getLocalResource("javabeans/house-dump1.yaml");
54 assertEquals(etalon, yaml);
55
56 Yaml beanLoader = new Yaml();
57 House loadedHouse = beanLoader.loadAs(yaml, House.class);
58 assertNotNull(loadedHouse);
59 assertEquals("Wall Street", loadedHouse.getStreet());
60
61 String yaml3 = beanDumper.dumpAsMap(loadedHouse);
62 assertEquals(yaml, yaml3);
63 }
64
65
66
67
68 public void testDump3() {
69 House house = new House();
70 FrontDoor frontDoor = new FrontDoor("qaz1", 5);
71 frontDoor.setKeytype("qwerty123");
72 house.setFrontDoor(frontDoor);
73 List<Room> rooms = new ArrayList<Room>();
74 rooms.add(new Room("Hall"));
75 rooms.add(new Room("Kitchen"));
76 house.setRooms(rooms);
77 Map<String, String> reminders = new TreeMap<String, String>();
78 reminders.put("today", "do nothig");
79 reminders.put("tomorrow", "go shoping");
80 house.setReminders(reminders);
81 house.setNumber(1);
82 house.setStreet("Wall Street");
83 Yaml beanDumper = new Yaml();
84 String yaml = beanDumper.dumpAsMap(house);
85 String etalon = Util.getLocalResource("javabeans/house-dump3.yaml");
86 assertEquals(etalon, yaml);
87
88 TypeDescription description = new TypeDescription(House.class);
89 description.putListPropertyType("rooms", Room.class);
90 Yaml beanLoader = new Yaml(new Constructor(description));
91 House loadedHouse = (House) beanLoader.load(yaml);
92 House loadedHouse2 = (House) beanLoader.loadAs(yaml, House.class);
93 assertNotNull(loadedHouse);
94 assertFalse(loadedHouse == loadedHouse2);
95 assertEquals("Wall Street", loadedHouse.getStreet());
96 assertEquals(1, loadedHouse.getNumber());
97 assertEquals(1, loadedHouse2.getNumber());
98 FrontDoor fdoor = loadedHouse.getFrontDoor();
99 assertEquals(frontDoor.getId(), fdoor.getId());
100 assertEquals(frontDoor.getHeight(), fdoor.getHeight());
101 assertEquals(frontDoor.getKeytype(), fdoor.getKeytype());
102 assertEquals(frontDoor, fdoor);
103 assertEquals(reminders, loadedHouse.getReminders());
104 List<Room> loadedRooms = loadedHouse.getRooms();
105 assertEquals(rooms, loadedRooms);
106
107 String yaml3 = beanDumper.dumpAsMap(loadedHouse);
108 assertEquals(yaml, yaml3);
109 }
110
111
112
113
114 public void testDump2() {
115 House house = new House();
116 FrontDoor frontDoor = new FrontDoor("qaz1", 5);
117 frontDoor.setKeytype("qwerty123");
118 house.setFrontDoor(frontDoor);
119 List<Room> rooms = new ArrayList<Room>();
120 rooms.add(new Room("Hall"));
121 rooms.add(new Room("Kitchen"));
122 house.setRooms(rooms);
123 Map<String, String> reminders = new TreeMap<String, String>();
124 reminders.put("today", "do nothig");
125 reminders.put("tomorrow", "go shoping");
126 house.setReminders(reminders);
127 house.setNumber(1);
128 house.setStreet("Wall Street");
129 DumperOptions options = new DumperOptions();
130 options.setDefaultFlowStyle(FlowStyle.BLOCK);
131 Yaml beanDumper = new Yaml(options);
132 String yaml = beanDumper.dump(house);
133 String etalon = Util.getLocalResource("javabeans/house-dump2.yaml");
134 assertEquals(etalon, yaml);
135
136 Yaml beanLoader = new Yaml();
137 House loadedHouse = beanLoader.loadAs(yaml, House.class);
138 assertNotNull(loadedHouse);
139 assertEquals("Wall Street", loadedHouse.getStreet());
140
141 String yaml3 = beanDumper.dump(loadedHouse);
142 assertEquals(yaml, yaml3);
143 }
144 }