Package org.codehaus.xfire.aegis.stax

Source Code of org.codehaus.xfire.aegis.stax.ReaderTest

package org.codehaus.xfire.aegis.stax;

import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLStreamException;

import org.codehaus.xfire.aegis.MessageReader;
import org.codehaus.xfire.aegis.jdom.JDOMReader;
import org.codehaus.xfire.soap.Soap11;
import org.codehaus.xfire.test.AbstractXFireTest;
import org.codehaus.xfire.util.jdom.StaxBuilder;
import org.jdom.Document;

/**
* @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
* @since Nov 4, 2004
*/
public class ReaderTest
    extends AbstractXFireTest
{
    public void testLiteralReader()
        throws Exception
    {
        ElementReader lr = getStreamReader("/org/codehaus/xfire/message/document/bean11.xml");
        testReading(lr);
       
        lr = getStreamReader("/org/codehaus/xfire/aegis/stax/read1.xml");
        testReading2(lr);
       
        lr = getStreamReader("/org/codehaus/xfire/aegis/stax/read2.xml");
        testReading2(lr);
    }

    private ElementReader getStreamReader(String resource)
        throws FactoryConfigurationError, XMLStreamException
    {
        return new ElementReader(getResourceAsStream(resource));
    }
   
    public void testYOMReader()
        throws Exception
    {
        StaxBuilder builder = new StaxBuilder();
        Document doc = builder.build(getResourceAsReader("/org/codehaus/xfire/message/document/bean11.xml"));

        testReading(new JDOMReader(doc.getRootElement()));
    }
   
    public void testReading(MessageReader reader)
    {
        assertTrue(reader.getLocalName().equals("Envelope"));

        // make sure we can repeat this
        assertTrue(reader.hasMoreElementReaders());
        assertTrue(reader.hasMoreElementReaders());
        assertTrue(reader.hasMoreElementReaders());

        MessageReader header = reader.getNextElementReader();
        assertEquals("Header", header.getLocalName());
        assertEquals(Soap11.getInstance().getNamespace(), header.getNamespace());
        assertFalse(header.hasMoreElementReaders());

        MessageReader body = reader.getNextElementReader();
        assertEquals("Body", body.getLocalName());
        assertFalse(body.hasMoreElementReaders());
    }
   
    public void testReading2(MessageReader reader)
        throws Exception
    {
        assertEquals("test", reader.getLocalName());
        assertEquals("urn:test", reader.getNamespace());

        // make sure we can repeat this
        assertTrue(reader.hasMoreAttributeReaders());
        assertTrue(reader.hasMoreAttributeReaders());
        assertTrue(reader.hasMoreAttributeReaders());

        MessageReader one = reader.getNextAttributeReader();
        assertEquals("one", one.getValue());
       
        MessageReader two = reader.getNextAttributeReader();
        assertEquals("two", two.getValue());

        assertFalse(reader.hasMoreAttributeReaders());
       
        assertTrue(reader.hasMoreElementReaders());
        assertTrue(reader.hasMoreElementReaders());
        assertTrue(reader.hasMoreElementReaders());
       
        MessageReader foo = reader.getNextElementReader();
        assertEquals("bar", foo.getValue());
       
        MessageReader nil = reader.getNextElementReader();
        assertTrue(nil.isXsiNil());
       
        nil.readToEnd();
       
        assertTrue(reader.hasMoreElementReaders());
        MessageReader child = reader.getNextElementReader();
        assertEquals("child", child.getLocalName());
        assertTrue(child.hasMoreElementReaders());
       
        MessageReader gc1 = child.getNextElementReader();
        assertEquals("asdf", gc1.getValue());
       
        MessageReader gc2 = child.getNextElementReader();
        assertEquals("asdf", gc2.getValue());
       
        assertFalse(child.hasMoreElementReaders());
        assertTrue(reader.hasMoreElementReaders());
       
        foo = reader.getNextElementReader();
        assertEquals("test", foo.getValue());
       
        assertFalse(reader.hasMoreElementReaders());
    }
}
TOP

Related Classes of org.codehaus.xfire.aegis.stax.ReaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.