/**
 * Copyright (c) 2008-2010, http://www.snakeyaml.org
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.yaml.snakeyaml;

import java.util.Iterator;

import junit.framework.TestCase;

public class YamlTest extends TestCase {

    public void testSetNoName() {
        Yaml yaml = new Yaml();
        assertTrue(yaml.toString().matches("Yaml:\\d+"));
    }

    public void testSetName() {
        Yaml yaml = new Yaml();
        yaml.setName("REST");
        assertEquals("REST", yaml.getName());
        assertEquals("REST", yaml.toString());
    }

    /**
     * Check that documents are parsed only when they are asked to be loaded.
     */
    public void testOneDocument() {
        Yaml yaml = new Yaml();
        String doc = "--- a\n--- [:]";
        Iterator<Object> loaded = yaml.loadAll(doc).iterator();
        assertTrue(loaded.hasNext());
        Object obj1 = loaded.next();
        assertEquals("a", obj1);
        assertTrue(loaded.hasNext());
        try {
            loaded.next();
            fail("Second document is invalid");
        } catch (Exception e) {
            assertEquals("while parsing a flow node; expected the node content, but found Value", e
                    .getMessage());
        }
    }
}

@@ -726,16 +726,66 @@
 ase;%0D%0A%0D%0A
+import org.yaml.snakeyaml.error.YAMLException;%0D%0A%0D%0A
 public c
@@ -1859,12 +1859,414 @@
 %0D%0A    %7D%0D
+%0A%0D%0A    public void testOnlyOneDocument() %7B%0D%0A        Yaml yaml = new Yaml();%0D%0A        String doc = %22--- a%5Cn--- b%22;%0D%0A        try %7B%0D%0A            yaml.load(doc);%0D%0A            fail(%22It must be only one document.%22);%0D%0A        %7D catch (YAMLException e) %7B%0D%0A            assertEquals(%22expected a single document in the stream; but found another document%22, e%0D%0A                    .getMessage());%0D%0A        %7D%0D%0A    %7D%0D
 %0A%7D%0D%0A

Add a test for a single document in a stream