View Javadoc

1   /**
2    * Copyright (c) 2008-2012, http://www.snakeyaml.org
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.yaml.snakeyaml;
17  
18  import java.io.StringWriter;
19  
20  import junit.framework.TestCase;
21  
22  import org.yaml.snakeyaml.DumperOptions.FlowStyle;
23  import org.yaml.snakeyaml.representer.Representer;
24  
25  @SuppressWarnings("deprecation")
26  public class JavaBeanDumperTest extends TestCase {
27  
28      public void testDumpObjectWriter() {
29          DumpBean bean = new DumpBean();
30          bean.setName("Name1");
31          bean.setNumber(3);
32          JavaBeanDumper dumper = new JavaBeanDumper();
33          String output = dumper.dump(bean);
34          assertEquals("name: Name1\nnumber: 3\n", output);
35          assertEquals(FlowStyle.BLOCK, dumper.getFlowStyle());
36          assertFalse(dumper.isUseGlobalTag());
37          //
38          dumper.setFlowStyle(FlowStyle.AUTO);
39          output = dumper.dump(bean);
40          assertEquals("{name: Name1, number: 3}\n", output);
41          //
42          dumper.setUseGlobalTag(true);
43          output = dumper.dump(bean);
44          assertEquals("!!org.yaml.snakeyaml.JavaBeanDumperTest$DumpBean {name: Name1, number: 3}\n",
45                  output);
46      }
47  
48      public void testDumpObject() {
49          DumpBean bean = new DumpBean();
50          bean.setName("Name2");
51          bean.setNumber(4);
52          JavaBeanDumper dumper = new JavaBeanDumper();
53          StringWriter buffer = new StringWriter();
54          dumper.dump(bean, buffer);
55          assertEquals("name: Name2\nnumber: 4\n", buffer.toString());
56      }
57  
58      public void testDumpObject2() {
59          DumpBean bean = new DumpBean();
60          bean.setName("Name2");
61          bean.setNumber(4);
62          JavaBeanDumper dumper = new JavaBeanDumper();
63          StringWriter buffer = new StringWriter();
64          dumper.dump(bean, buffer);
65          assertEquals("name: Name2\nnumber: 4\n", buffer.toString());
66          String output = dumper.dump(bean);
67          assertEquals("name: Name2\nnumber: 4\n", output);
68      }
69  
70      public void testDumpObjectNullRepresenter() {
71          try {
72              new JavaBeanDumper(null, new DumperOptions());
73              fail();
74          } catch (NullPointerException e) {
75              assertEquals("Representer must be provided.", e.getMessage());
76          }
77      }
78  
79      public void testDumpObjectNullOptions() {
80          try {
81              new JavaBeanDumper(new Representer(), null);
82              fail();
83          } catch (NullPointerException e) {
84              assertEquals("DumperOptions must be provided.", e.getMessage());
85          }
86      }
87  
88      public static class DumpBean {
89          private String name;
90          private int number;
91  
92          public String getName() {
93              return name;
94          }
95  
96          public void setName(String name) {
97              this.name = name;
98          }
99  
100         public int getNumber() {
101             return number;
102         }
103 
104         public void setNumber(int number) {
105             this.number = number;
106         }
107     }
108 }