1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue55;
17
18 import java.util.LinkedList;
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 import org.yaml.snakeyaml.introspector.BeanAccess;
26
27 public class JavaBeanListTest extends TestCase {
28
29 public void testYaml() {
30 Yaml beanLoader = new Yaml();
31 beanLoader.setBeanAccess(BeanAccess.FIELD);
32 BlogBean rehydrated = (BlogBean) beanLoader.loadAs(
33 Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
34 assertEquals(4, rehydrated.getPosts().size());
35 }
36
37 public void testFailureWithoutFieldAccess() {
38 Yaml beanLoader = new Yaml();
39 try {
40 beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
41 fail("Private field must not be available");
42 } catch (Exception e) {
43 assertTrue(e.getMessage().contains("Unable to find property 'posts'"));
44 }
45 }
46
47 public static class BlogBean {
48 private List<Integer> posts;
49
50 public BlogBean() {
51 posts = new LinkedList<Integer>();
52 }
53
54 public List<Integer> getPosts() {
55 return posts;
56 }
57 }
58 }