Package org.springframework.xml.transform

Source Code of org.springframework.xml.transform.TraxUtilsTest

/*
* Copyright 2005-2010 the original author or authors.
*
* 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.springframework.xml.transform;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.springframework.util.xml.StaxUtils;

import org.junit.Assert;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.ext.DefaultHandler2;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;

import static org.easymock.EasyMock.*;

public class TraxUtilsTest {

    @Test
    public void testGetDocument() throws Exception {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        documentBuilderFactory.setNamespaceAware(true);
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();
        Assert.assertSame("Invalid document", document, TraxUtils.getDocument(new DOMSource(document)));
        Element element = document.createElement("element");
        document.appendChild(element);
        Assert.assertSame("Invalid document", document, TraxUtils.getDocument(new DOMSource(element)));
    }

    @Test
    public void testDoWithDomSource() throws Exception {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.domSource(document);

        replay(mock);

        TraxUtils.doWithSource(new DOMSource(document), mock);

        verify(mock);
    }

    @Test
    public void testDoWithDomResult() throws Exception {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.domResult(document);

        replay(mock);

        TraxUtils.doWithResult(new DOMResult(document), mock);

        verify(mock);
    }

    @Test
    public void testDoWithSaxSource() throws Exception {
        XMLReader reader = XMLReaderFactory.createXMLReader();
        InputSource inputSource = new InputSource();

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.saxSource(reader, inputSource);

        replay(mock);

        TraxUtils.doWithSource(new SAXSource(reader, inputSource), mock);

        verify(mock);
    }

    @Test
    public void testDoWithSaxResult() throws Exception {
        ContentHandler contentHandler = new DefaultHandler();
        LexicalHandler lexicalHandler = new DefaultHandler2();

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.saxResult(contentHandler, lexicalHandler);

        replay(mock);

        SAXResult result = new SAXResult(contentHandler);
        result.setLexicalHandler(lexicalHandler);
        TraxUtils.doWithResult(result, mock);

        verify(mock);
    }

    @Test
    public void testDoWithStaxSourceEventReader() throws Exception {
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader("<element/>"));

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.staxSource(eventReader);

        replay(mock);

        TraxUtils.doWithSource(StaxUtils.createStaxSource(eventReader), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStaxResultEventWriter() throws Exception {
        XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
        XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new StringWriter());

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.staxResult(eventWriter);

        replay(mock);

        TraxUtils.doWithResult(StaxUtils.createStaxResult(eventWriter), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStaxSourceStreamReader() throws Exception {
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader("<element/>"));

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.staxSource(streamReader);

        replay(mock);

        TraxUtils.doWithSource(StaxUtils.createStaxSource(streamReader), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStaxResultStreamWriter() throws Exception {
        XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
        XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(new StringWriter());

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.staxResult(streamWriter);

        replay(mock);

        TraxUtils.doWithResult(StaxUtils.createStaxResult(streamWriter), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStreamSourceInputStream() throws Exception {
        byte[] xml = "<element/>".getBytes("UTF-8");
        InputStream inputStream = new ByteArrayInputStream(xml);

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.streamSource(inputStream);

        replay(mock);

        TraxUtils.doWithSource(new StreamSource(inputStream), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStreamResultOutputStream() throws Exception {
        OutputStream outputStream = new ByteArrayOutputStream();

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.streamResult(outputStream);

        replay(mock);

        TraxUtils.doWithResult(new StreamResult(outputStream), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStreamSourceReader() throws Exception {
        String xml = "<element/>";
        Reader reader = new StringReader(xml);

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.streamSource(reader);

        replay(mock);

        TraxUtils.doWithSource(new StreamSource(reader), mock);

        verify(mock);
    }

    @Test
    public void testDoWithStreamResultWriter() throws Exception {
        Writer writer = new StringWriter();

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.streamResult(writer);

        replay(mock);

        TraxUtils.doWithResult(new StreamResult(writer), mock);

        verify(mock);
    }

    @Test
    public void testDoWithSystemIdSource() throws Exception {
        String systemId = "http://www.springframework.org/dtd/spring-beans.dtd";

        TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);
        mock.source(systemId);

        replay(mock);

        TraxUtils.doWithSource(new StreamSource(systemId), mock);

        verify(mock);
    }
   
    @Test
    public void testDoWithSystemIdResult() throws Exception {
        String systemId = "http://www.springframework.org/dtd/spring-beans.dtd";

        TraxUtils.ResultCallback mock = createMock(TraxUtils.ResultCallback.class);
        mock.result(systemId);

        replay(mock);

        TraxUtils.doWithResult(new StreamResult(systemId), mock);

        verify(mock);
    }


    @Test
    public void testDoWithInvalidSource() throws Exception {
        Source source = new Source() {

            public void setSystemId(String systemId) {
            }

            public String getSystemId() {
                return null;
            }
        };

        try {
            TraxUtils.doWithSource(source, null);
            Assert.fail("IllegalArgumentException expected");
        }
        catch (IllegalArgumentException ex) {
            // expected
        }
    }

    @Test
    public void testDoWithInvalidResult() throws Exception {
        Result result = new Result() {

            public void setSystemId(String systemId) {
            }

            public String getSystemId() {
                return null;
            }
        };

        try {
            TraxUtils.doWithResult(result, null);
            Assert.fail("IllegalArgumentException expected");
        }
        catch (IllegalArgumentException ex) {
            // expected
        }
    }
}
TOP

Related Classes of org.springframework.xml.transform.TraxUtilsTest

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.