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