1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue73;
17
18 import java.util.HashSet;
19 import java.util.LinkedHashSet;
20 import java.util.Set;
21 import java.util.TreeSet;
22
23 import junit.framework.TestCase;
24
25 import org.yaml.snakeyaml.DumperOptions;
26 import org.yaml.snakeyaml.Util;
27 import org.yaml.snakeyaml.Yaml;
28 import org.yaml.snakeyaml.introspector.BeanAccess;
29
30 public class SetAsSequenceTest extends TestCase {
31
32 public void testDump() {
33 Blog blog = new Blog("Test Me!");
34 blog.addPost(new Post("Title1", "text 1"));
35 blog.addPost(new Post("Title2", "text text 2"));
36 blog.numbers.add(19);
37 blog.numbers.add(17);
38 TreeSet<String> labels = new TreeSet<String>();
39 labels.add("Java");
40 labels.add("YAML");
41 labels.add("SnakeYAML");
42 blog.setLabels(labels);
43 DumperOptions options = new DumperOptions();
44 options.setAllowReadOnlyProperties(true);
45 Yaml yaml = new Yaml(options);
46 String output = yaml.dump(blog);
47
48 assertEquals(Util.getLocalResource("issues/issue73-1.txt"), output);
49 }
50
51 public void testLoad() {
52 Yaml yaml = new Yaml();
53 yaml.setBeanAccess(BeanAccess.FIELD);
54 String doc = Util.getLocalResource("issues/issue73-1.txt");
55 Blog blog = (Blog) yaml.load(doc);
56
57 assertEquals("Test Me!", blog.getName());
58 assertEquals(2, blog.numbers.size());
59 assertEquals(2, blog.getPosts().size());
60 for (Post post : blog.getPosts()) {
61 assertEquals(Post.class, post.getClass());
62 }
63 }
64
65 public void testYaml() {
66 String serialized = Util.getLocalResource("issues/issue73-2.txt");
67
68 Yaml beanLoader = new Yaml();
69 beanLoader.setBeanAccess(BeanAccess.FIELD);
70 Blog rehydrated = beanLoader.loadAs(serialized, Blog.class);
71 checkTestBlog(rehydrated);
72 }
73
74 protected void checkTestBlog(Blog blog) {
75 Set<Post> posts = blog.getPosts();
76 assertEquals("Blog contains 2 posts", 2, posts.size());
77 assertTrue(posts.contains(new Post("Test", "Dummy")));
78 assertTrue(posts.contains(new Post("Highly", "Creative")));
79 assertEquals("No tags!", blog.getName());
80 assertEquals(0, blog.numbers.size());
81 }
82
83 @SuppressWarnings("unchecked")
84 public void testLoadRootSet() {
85 Yaml yaml = new Yaml();
86 String doc = Util.getLocalResource("issues/issue73-3.txt");
87 Set<String> strings = (Set<String>) yaml.load(doc);
88
89 assertEquals(3, strings.size());
90 assertEquals(HashSet.class, strings.getClass());
91 assertTrue(strings.contains("aaa"));
92 assertTrue(strings.contains("bbb"));
93 assertTrue(strings.contains("ccc"));
94 }
95
96 @SuppressWarnings("unchecked")
97 public void testLoadRootSet2() {
98 Yaml yaml = new Yaml();
99 String doc = "!!java.util.HashSet {aaa: null, bbb: null, ccc: null}";
100 Set<String> strings = (Set<String>) yaml.load(doc);
101
102 assertEquals(3, strings.size());
103 assertEquals(LinkedHashSet.class, strings.getClass());
104 assertTrue(strings.contains("aaa"));
105 assertTrue(strings.contains("bbb"));
106 assertTrue(strings.contains("ccc"));
107 }
108
109 @SuppressWarnings("unchecked")
110 public void testLoadRootSet3() {
111 Yaml yaml = new Yaml();
112 String doc = "!!java.util.TreeSet {aaa: null, bbb: null, ccc: null}";
113 Set<String> strings = (Set<String>) yaml.load(doc);
114
115 assertEquals(3, strings.size());
116 assertEquals(TreeSet.class, strings.getClass());
117 assertTrue(strings.contains("aaa"));
118 assertTrue(strings.contains("bbb"));
119 assertTrue(strings.contains("ccc"));
120 }
121
122 @SuppressWarnings("unchecked")
123 public void testLoadRootSet6() {
124 Yaml yaml = new Yaml();
125 String doc = Util.getLocalResource("issues/issue73-6.txt");
126 Set<String> strings = (Set<String>) yaml.load(doc);
127
128 assertEquals(3, strings.size());
129 assertEquals(TreeSet.class, strings.getClass());
130 assertTrue(strings.contains("aaa"));
131 assertTrue(strings.contains("bbb"));
132 assertTrue(strings.contains("ccc"));
133 }
134 }