xref: /aosp_15_r20/external/snakeyaml/src/test/java/examples/LoadExampleTest.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.ByteArrayInputStream;
17*ac2a7c1bSSadaf Ebrahimi import java.io.File;
18*ac2a7c1bSSadaf Ebrahimi import java.io.FileInputStream;
19*ac2a7c1bSSadaf Ebrahimi import java.io.IOException;
20*ac2a7c1bSSadaf Ebrahimi import java.io.InputStream;
21*ac2a7c1bSSadaf Ebrahimi import java.nio.charset.StandardCharsets;
22*ac2a7c1bSSadaf Ebrahimi import java.util.Iterator;
23*ac2a7c1bSSadaf Ebrahimi import java.util.List;
24*ac2a7c1bSSadaf Ebrahimi import java.util.Map;
25*ac2a7c1bSSadaf Ebrahimi import java.util.NoSuchElementException;
26*ac2a7c1bSSadaf Ebrahimi import junit.framework.TestCase;
27*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.Yaml;
28*ac2a7c1bSSadaf Ebrahimi 
29*ac2a7c1bSSadaf Ebrahimi public class LoadExampleTest extends TestCase {
30*ac2a7c1bSSadaf Ebrahimi 
31*ac2a7c1bSSadaf Ebrahimi   @SuppressWarnings("unchecked")
testLoad()32*ac2a7c1bSSadaf Ebrahimi   public void testLoad() {
33*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
34*ac2a7c1bSSadaf Ebrahimi     String document = "\n- Hesperiidae\n- Papilionidae\n- Apatelodidae\n- Epiplemidae";
35*ac2a7c1bSSadaf Ebrahimi     List<String> list = yaml.load(document);
36*ac2a7c1bSSadaf Ebrahimi     assertEquals("[Hesperiidae, Papilionidae, Apatelodidae, Epiplemidae]", list.toString());
37*ac2a7c1bSSadaf Ebrahimi   }
38*ac2a7c1bSSadaf Ebrahimi 
testLoadFromString()39*ac2a7c1bSSadaf Ebrahimi   public void testLoadFromString() {
40*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
41*ac2a7c1bSSadaf Ebrahimi     String document = "hello: 25";
42*ac2a7c1bSSadaf Ebrahimi     @SuppressWarnings("unchecked")
43*ac2a7c1bSSadaf Ebrahimi     Map<String, Integer> map = yaml.load(document);
44*ac2a7c1bSSadaf Ebrahimi     assertEquals("{hello=25}", map.toString());
45*ac2a7c1bSSadaf Ebrahimi     assertEquals(Integer.valueOf(25), map.get("hello"));
46*ac2a7c1bSSadaf Ebrahimi   }
47*ac2a7c1bSSadaf Ebrahimi 
testLoadFromStream()48*ac2a7c1bSSadaf Ebrahimi   public void testLoadFromStream() throws IOException {
49*ac2a7c1bSSadaf Ebrahimi     InputStream input = new FileInputStream(new File("src/test/resources/reader/utf-8.txt"));
50*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
51*ac2a7c1bSSadaf Ebrahimi     Object data = yaml.load(input);
52*ac2a7c1bSSadaf Ebrahimi     assertEquals("test", data);
53*ac2a7c1bSSadaf Ebrahimi     //
54*ac2a7c1bSSadaf Ebrahimi     data = yaml.load(new ByteArrayInputStream("test2".getBytes(StandardCharsets.UTF_8)));
55*ac2a7c1bSSadaf Ebrahimi     assertEquals("test2", data);
56*ac2a7c1bSSadaf Ebrahimi     input.close();
57*ac2a7c1bSSadaf Ebrahimi   }
58*ac2a7c1bSSadaf Ebrahimi 
testLoadManyDocuments()59*ac2a7c1bSSadaf Ebrahimi   public void testLoadManyDocuments() throws IOException {
60*ac2a7c1bSSadaf Ebrahimi     InputStream input =
61*ac2a7c1bSSadaf Ebrahimi         new FileInputStream(new File("src/test/resources/specification/example2_28.yaml"));
62*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
63*ac2a7c1bSSadaf Ebrahimi     int counter = 0;
64*ac2a7c1bSSadaf Ebrahimi     for (Object data : yaml.loadAll(input)) {
65*ac2a7c1bSSadaf Ebrahimi       assertNotNull(data);
66*ac2a7c1bSSadaf Ebrahimi       assertTrue(data.toString().length() > 1);
67*ac2a7c1bSSadaf Ebrahimi       counter++;
68*ac2a7c1bSSadaf Ebrahimi     }
69*ac2a7c1bSSadaf Ebrahimi     assertEquals(3, counter);
70*ac2a7c1bSSadaf Ebrahimi     input.close();
71*ac2a7c1bSSadaf Ebrahimi   }
72*ac2a7c1bSSadaf Ebrahimi 
testLoadManyDocumentsWithIterator()73*ac2a7c1bSSadaf Ebrahimi   public void testLoadManyDocumentsWithIterator() throws IOException {
74*ac2a7c1bSSadaf Ebrahimi     InputStream input =
75*ac2a7c1bSSadaf Ebrahimi         new FileInputStream(new File("src/test/resources/specification/example2_28.yaml"));
76*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
77*ac2a7c1bSSadaf Ebrahimi     int counter = 0;
78*ac2a7c1bSSadaf Ebrahimi     Iterator<Object> iter = yaml.loadAll(input).iterator();
79*ac2a7c1bSSadaf Ebrahimi     while (iter.hasNext()) {
80*ac2a7c1bSSadaf Ebrahimi       Object data = iter.next();
81*ac2a7c1bSSadaf Ebrahimi       assertNotNull(data);
82*ac2a7c1bSSadaf Ebrahimi       assertTrue(data.toString().length() > 1);
83*ac2a7c1bSSadaf Ebrahimi       counter++;
84*ac2a7c1bSSadaf Ebrahimi     }
85*ac2a7c1bSSadaf Ebrahimi     assertEquals(3, counter);
86*ac2a7c1bSSadaf Ebrahimi     input.close();
87*ac2a7c1bSSadaf Ebrahimi   }
88*ac2a7c1bSSadaf Ebrahimi 
testLoadManyDocumentsWithIterator2()89*ac2a7c1bSSadaf Ebrahimi   public void testLoadManyDocumentsWithIterator2() throws IOException {
90*ac2a7c1bSSadaf Ebrahimi     InputStream input =
91*ac2a7c1bSSadaf Ebrahimi         new FileInputStream(new File("src/test/resources/specification/example2_28.yaml"));
92*ac2a7c1bSSadaf Ebrahimi     Yaml yaml = new Yaml();
93*ac2a7c1bSSadaf Ebrahimi     Iterator<Object> iter = yaml.loadAll(input).iterator();
94*ac2a7c1bSSadaf Ebrahimi     Object data = iter.next();
95*ac2a7c1bSSadaf Ebrahimi     assertNotNull(data);
96*ac2a7c1bSSadaf Ebrahimi     data = iter.next();
97*ac2a7c1bSSadaf Ebrahimi     assertNotNull(data);
98*ac2a7c1bSSadaf Ebrahimi     data = iter.next();
99*ac2a7c1bSSadaf Ebrahimi     assertNotNull(data);
100*ac2a7c1bSSadaf Ebrahimi     try {
101*ac2a7c1bSSadaf Ebrahimi       iter.next();
102*ac2a7c1bSSadaf Ebrahimi       fail("Expect NoSuchElementException");
103*ac2a7c1bSSadaf Ebrahimi     } catch (NoSuchElementException e) {
104*ac2a7c1bSSadaf Ebrahimi       assertEquals("No document is available.", e.getMessage());
105*ac2a7c1bSSadaf Ebrahimi     }
106*ac2a7c1bSSadaf Ebrahimi     input.close();
107*ac2a7c1bSSadaf Ebrahimi   }
108*ac2a7c1bSSadaf Ebrahimi }
109