xref: /aosp_15_r20/external/snakeyaml/src/test/java/examples/DumpExampleTest.java (revision ac2a7c1bf4e14d82f3bd566dcc2d76d5b42faf34)
1*ac2a7c1bSSadaf Ebrahimi /**
2*ac2a7c1bSSadaf Ebrahimi  * Copyright (c) 2008, SnakeYAML
3*ac2a7c1bSSadaf Ebrahimi  *
4*ac2a7c1bSSadaf Ebrahimi  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5*ac2a7c1bSSadaf Ebrahimi  * in compliance with the License. You may obtain a copy of the License at
6*ac2a7c1bSSadaf Ebrahimi  *
7*ac2a7c1bSSadaf Ebrahimi  * http://www.apache.org/licenses/LICENSE-2.0
8*ac2a7c1bSSadaf Ebrahimi  *
9*ac2a7c1bSSadaf Ebrahimi  * Unless required by applicable law or agreed to in writing, software distributed under the License
10*ac2a7c1bSSadaf Ebrahimi  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11*ac2a7c1bSSadaf Ebrahimi  * or implied. See the License for the specific language governing permissions and limitations under
12*ac2a7c1bSSadaf Ebrahimi  * the License.
13*ac2a7c1bSSadaf Ebrahimi  */
14*ac2a7c1bSSadaf Ebrahimi package examples;
15*ac2a7c1bSSadaf Ebrahimi 
16*ac2a7c1bSSadaf Ebrahimi import java.io.StringWriter;
17*ac2a7c1bSSadaf Ebrahimi import java.util.ArrayList;
18*ac2a7c1bSSadaf Ebrahimi import java.util.HashMap;
19*ac2a7c1bSSadaf Ebrahimi import java.util.List;
20*ac2a7c1bSSadaf Ebrahimi import java.util.Map;
21*ac2a7c1bSSadaf Ebrahimi import junit.framework.TestCase;
22*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.DumperOptions;
23*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.Yaml;
24*ac2a7c1bSSadaf Ebrahimi 
25*ac2a7c1bSSadaf Ebrahimi public class DumpExampleTest extends TestCase {
26*ac2a7c1bSSadaf Ebrahimi 
testDump()27*ac2a7c1bSSadaf Ebrahimi   public void testDump() {
28*ac2a7c1bSSadaf Ebrahimi     Map<String, Object> data = new HashMap<String, Object>();
29*ac2a7c1bSSadaf Ebrahimi     data.put("name", "Silenthand Olleander");
30*ac2a7c1bSSadaf Ebrahimi     data.put("race", "Human");
31*ac2a7c1bSSadaf Ebrahimi     data.put("traits", new String[] {"ONE_HAND", "ONE_EYE"});
32*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
33*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(data);
34*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("name: Silenthand Olleander"));
35*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("race: Human"));
36*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("traits: [ONE_HAND, ONE_EYE]"));
37*ac2a7c1bSSadaf Ebrahimi   }
38*ac2a7c1bSSadaf Ebrahimi 
testDumpWriter()39*ac2a7c1bSSadaf Ebrahimi   public void testDumpWriter() {
40*ac2a7c1bSSadaf Ebrahimi     Map<String, Object> data = new HashMap<String, Object>();
41*ac2a7c1bSSadaf Ebrahimi     data.put("name", "Silenthand Olleander");
42*ac2a7c1bSSadaf Ebrahimi     data.put("race", "Human");
43*ac2a7c1bSSadaf Ebrahimi     data.put("traits", new String[] {"ONE_HAND", "ONE_EYE"});
44*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
45*ac2a7c1bSSadaf Ebrahimi     StringWriter writer = new StringWriter();
46*ac2a7c1bSSadaf Ebrahimi     yaml.dump(data, writer);
47*ac2a7c1bSSadaf Ebrahimi     assertTrue(writer.toString().contains("name: Silenthand Olleander"));
48*ac2a7c1bSSadaf Ebrahimi     assertTrue(writer.toString().contains("race: Human"));
49*ac2a7c1bSSadaf Ebrahimi     assertTrue(writer.toString().contains("traits: [ONE_HAND, ONE_EYE]"));
50*ac2a7c1bSSadaf Ebrahimi   }
51*ac2a7c1bSSadaf Ebrahimi 
testDumpMany()52*ac2a7c1bSSadaf Ebrahimi   public void testDumpMany() {
53*ac2a7c1bSSadaf Ebrahimi     List<Integer> docs = new ArrayList<Integer>();
54*ac2a7c1bSSadaf Ebrahimi     for (int i = 1; i < 4; i++) {
55*ac2a7c1bSSadaf Ebrahimi       docs.add(i);
56*ac2a7c1bSSadaf Ebrahimi     }
57*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
58*ac2a7c1bSSadaf Ebrahimi     options.setExplicitStart(true);
59*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml(options);
60*ac2a7c1bSSadaf Ebrahimi     String result = yaml.dumpAll(docs.iterator());
61*ac2a7c1bSSadaf Ebrahimi     assertNotNull(result);
62*ac2a7c1bSSadaf Ebrahimi     assertTrue(result.contains("--- 2"));
63*ac2a7c1bSSadaf Ebrahimi   }
64*ac2a7c1bSSadaf Ebrahimi 
testDumpCustomJavaClass()65*ac2a7c1bSSadaf Ebrahimi   public void testDumpCustomJavaClass() {
66*ac2a7c1bSSadaf Ebrahimi     Hero hero = new Hero("Galain Ysseleg", -3, 2);
67*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
68*ac2a7c1bSSadaf Ebrahimi     options.setAllowReadOnlyProperties(true);
69*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml(options);
70*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(hero);
71*ac2a7c1bSSadaf Ebrahimi     assertEquals("!!examples.Hero {hp: -3, name: Galain Ysseleg, sp: 2}\n", output);
72*ac2a7c1bSSadaf Ebrahimi   }
73*ac2a7c1bSSadaf Ebrahimi 
testDumperOptions()74*ac2a7c1bSSadaf Ebrahimi   public void testDumperOptions() {
75*ac2a7c1bSSadaf Ebrahimi     List<Integer> data = new ArrayList<Integer>();
76*ac2a7c1bSSadaf Ebrahimi     for (int i = 0; i < 50; i++) {
77*ac2a7c1bSSadaf Ebrahimi       data.add(i);
78*ac2a7c1bSSadaf Ebrahimi     }
79*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
80*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(data);
81*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("[0, 1, 2, 3, 4, 5, 6, 7, 8"));
82*ac2a7c1bSSadaf Ebrahimi     //
83*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
84*ac2a7c1bSSadaf Ebrahimi     options.setWidth(50);
85*ac2a7c1bSSadaf Ebrahimi     options.setIndent(4);
86*ac2a7c1bSSadaf Ebrahimi     yaml = new Yaml(options);
87*ac2a7c1bSSadaf Ebrahimi     output = yaml.dump(data);
88*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("1, 2"));
89*ac2a7c1bSSadaf Ebrahimi   }
90*ac2a7c1bSSadaf Ebrahimi 
testDumperOptionsCanonical()91*ac2a7c1bSSadaf Ebrahimi   public void testDumperOptionsCanonical() {
92*ac2a7c1bSSadaf Ebrahimi     List<Integer> data = new ArrayList<Integer>();
93*ac2a7c1bSSadaf Ebrahimi     for (int i = 0; i < 5; i++) {
94*ac2a7c1bSSadaf Ebrahimi       data.add(i);
95*ac2a7c1bSSadaf Ebrahimi     }
96*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
97*ac2a7c1bSSadaf Ebrahimi     options.setCanonical(true);
98*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml(options);
99*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(data);
100*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("---"));
101*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("!!seq ["));
102*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("!!int \"3\","));
103*ac2a7c1bSSadaf Ebrahimi   }
104*ac2a7c1bSSadaf Ebrahimi 
testDumperOptionsFlowStyle()105*ac2a7c1bSSadaf Ebrahimi   public void testDumperOptionsFlowStyle() {
106*ac2a7c1bSSadaf Ebrahimi     List<Integer> data = new ArrayList<Integer>();
107*ac2a7c1bSSadaf Ebrahimi     for (int i = 0; i < 5; i++) {
108*ac2a7c1bSSadaf Ebrahimi       data.add(i);
109*ac2a7c1bSSadaf Ebrahimi     }
110*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
111*ac2a7c1bSSadaf Ebrahimi     options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
112*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml(options);
113*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(data);
114*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- 0\n"));
115*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- 1\n"));
116*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- 4\n"));
117*ac2a7c1bSSadaf Ebrahimi   }
118*ac2a7c1bSSadaf Ebrahimi 
testDumperOptionsStyle()119*ac2a7c1bSSadaf Ebrahimi   public void testDumperOptionsStyle() {
120*ac2a7c1bSSadaf Ebrahimi     List<Integer> data = new ArrayList<Integer>();
121*ac2a7c1bSSadaf Ebrahimi     for (int i = 0; i < 5; i++) {
122*ac2a7c1bSSadaf Ebrahimi       data.add(i);
123*ac2a7c1bSSadaf Ebrahimi     }
124*ac2a7c1bSSadaf Ebrahimi     DumperOptions options = new DumperOptions();
125*ac2a7c1bSSadaf Ebrahimi     options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
126*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml(options);
127*ac2a7c1bSSadaf Ebrahimi     String output = yaml.dump(data);
128*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- !!int \"0\""));
129*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- !!int \"1\""));
130*ac2a7c1bSSadaf Ebrahimi     assertTrue(output.contains("- !!int \"4\""));
131*ac2a7c1bSSadaf Ebrahimi   }
132*ac2a7c1bSSadaf Ebrahimi }
133