Package org.apache.axis2.saaj

Source Code of org.apache.axis2.saaj.SOAPFactoryTest

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.axis2.saaj;

import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.soap.Detail;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPFault;
import java.util.Iterator;


/**
*
*/
public class SOAPFactoryTest extends TestCase {
    private static final Log log = LogFactory.getLog(SOAPFactoryTest.class);

    public void testCreateDetail() {
        try {
            SOAPFactory sf = SOAPFactory.newInstance();
            if (sf == null) {
                fail("SOAPFactory was null");
            }
            Detail d = sf.createDetail();
            if (d == null) {
                fail("Detail was null");
            }
        } catch (Exception e) {
            e.printStackTrace();
            fail("Unexpected Exception " + e);
        }
    }

    public void testCreateElement() {
        try {
            //SOAPFactory sf = SOAPFactory.newInstance();
            SOAPFactory sf = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            if (sf == null) {
                fail("createElementTest4() could not create SOAPFactory object");
            }
            //Create QName object with localName=MyName1,prefix=MyPrefix1, uri=MyUri1
            QName name = new QName("MyUri1", "MyName1", "MyPrefix1");
            SOAPElement se = sf.createElement(name);
            assertNotNull(se);
            name = se.getElementQName();
            String localName = name.getLocalPart();
            String prefix = name.getPrefix();
            String uri = name.getNamespaceURI();
            if (localName == null) {
                fail("localName is null (expected MyName1)");
            } else if (!localName.equals("MyName1")) {
                fail("localName is wrong (expected MyName1)");
            } else if (prefix == null) {
                fail("prefix is null (expected MyPrefix1)");
            } else if (!prefix.equals("MyPrefix1")) {
                fail("prefix is wrong (expected MyPrefix1)");
            } else if (uri == null) {
                fail("uri is null (expected MyUri1)");
            } else if (!uri.equals("MyUri1")) {
                fail("uri is wrong (expected MyUri1)");
            }
        }
        catch (Exception e) {
            fail();
        }
    }


    public void testCreateElement2() {
        try {
            SOAPFactory sf = SOAPFactory.newInstance();
            //SOAPFactory sf = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            if (sf == null) {
                fail("could not create SOAPFactory object");
            }
            log.info("Create a DOMElement");
            DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = dbfactory.newDocumentBuilder();
            Document document = builder.newDocument();
            Element de = document.createElementNS("http://MyNamespace.org/", "MyTag");
            //Calling SOAPFactory.createElement(org.w3c.dom.Element)
            SOAPElement se = sf.createElement(de);
            if (!de.getNodeName().equals(se.getNodeName()) || !de.getNamespaceURI().equals(
                    se.getNamespaceURI())) {
                //Node names are not equal
                fail("Got: <URI=" + se.getNamespaceURI() + ", PREFIX=" +
                        se.getPrefix() + ", NAME=" + se.getNodeName() + ">" +
                        "Expected: <URI=" + de.getNamespaceURI() + ", PREFIX=" +
                        de.getPrefix() + ", NAME=" + de.getNodeName() + ">");
            }
        } catch (Exception e) {
            fail("Exception: " + e);
        }
    }

    public void testCreateElement3() {
        try {
            SOAPFactory factory = SOAPFactory.newInstance();
            if (factory == null) {
                fail("createFaultTest1() could not create SOAPFactory object");
            }
            SOAPFault sf = factory.createFault();
            if (sf == null) {
                fail("createFault() returned null");
            } else if (!(sf instanceof SOAPFault)) {
                fail("createFault() did not create a SOAPFault object");
            }
        } catch (Exception e) {
            fail();
        }
    }

    public void testCreateElement4() {
        try {
            SOAPFactory sf = SOAPFactory.newInstance();
            if (sf == null) {
                fail("createElementTest6() could not create SOAPFactory object");
            }
            QName qname = new QName("http://MyNamespace.org/", "MyTag");
            SOAPElement se1 = sf.createElement(qname);
            //Create second SOAPElement from first SOAPElement
            SOAPElement se2 = sf.createElement(se1);
            //commented to support jdk 1.4 build
            //        if(!se1.isEqualNode(se2) && !se1.isSameNode(se2)) {
            //          fail("The SOAPElement's are not equal and not the same (unexpected)");
            //        }
            if (!se1.getNodeName().equals(se2.getNodeName()) || !se1.getNamespaceURI().equals(
                    se2.getNamespaceURI())) {
                fail("Got: <URI=" + se1.getNamespaceURI() + ", PREFIX=" +
                        se1.getPrefix() + ", NAME=" + se1.getNodeName() + ">" +
                        "Expected: <URI=" + se2.getNamespaceURI() + ", PREFIX=" +
                        se2.getPrefix() + ", NAME=" + se2.getNodeName() + ">");
            }
        } catch (Exception e) {
            fail();
        }
    }

    public void testCreateFault() {
        try {
            SOAPFactory factory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            //SOAPFactory factory = SOAPFactory.newInstance();
            SOAPFault sf = factory.createFault("This is the fault reason.",
                                               SOAPConstants.SOAP_RECEIVER_FAULT);
            assertNotNull(sf);
            assertTrue(sf instanceof SOAPFault);
            QName fc = sf.getFaultCodeAsQName();
            //Expect FaultCode="+SOAPConstants.SOAP_RECEIVER_FAULT
            Iterator i = sf.getFaultReasonTexts();
            if (i == null) {
                log.info("Call to getFaultReasonTexts() returned null iterator");
            }
            String reason = "";
            while (i.hasNext()) {
                reason += (String)i.next();
            }
            assertNotNull(reason);
            assertTrue(reason.indexOf("This is the fault reason.") > -1);
            assertTrue(fc.equals(SOAPConstants.SOAP_RECEIVER_FAULT));
        } catch (SOAPException e) {
            fail("Caught unexpected SOAPException");
        }
    }

    public void testCreateFault1() {
        try {
            //SOAPFactory factory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            SOAPFactory factory = SOAPFactory.newInstance();
            SOAPFault sf = factory.createFault("This is the fault reason.",
                                               SOAPConstants.SOAP_RECEIVER_FAULT);
            assertNotNull(sf);
            QName fc = sf.getFaultCodeAsQName();
            Iterator i = sf.getFaultReasonTexts();

            String reason = "";
            while (i.hasNext()) {
                reason += (String)i.next();
            }
            log.info("Actual ReasonText=" + reason);
            assertNotNull(reason);
            assertTrue(reason.indexOf("This is the fault reason.") > -1);
            assertTrue(fc.equals(SOAPConstants.SOAP_RECEIVER_FAULT));
        } catch (SOAPException e) {
            //Caught expected SOAPException
        } catch (Exception e) {
            fail("Exception: " + e);
        }
    }

    /** for soap 1.1 */
    public void testSOAPFaultException1() {
        try {
            SOAPFactory factory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            SOAPFault fault = factory.createFault("This is the fault reason.",
                                                  new QName("http://MyNamespaceURI.org/",
                                                            "My Fault Code"));
        } catch (UnsupportedOperationException e) {
            //Caught expected UnsupportedOperationException
        } catch (SOAPException e) {
            //Caught expected SOAPException
        } catch (IllegalArgumentException e) {
            //Caught expected IllegalArgumentException
        } catch (Exception e) {
            fail("Exception: " + e);
        }
    }

    /** for soap 1.2 */
    public void testSOAPFaultException2() {
        try {
            SOAPFactory factory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            SOAPFault sf = factory.createFault("This is the fault reason.",
                                               new QName("http://MyNamespaceURI.org/",
                                                         "My Fault Code"));
            fail("Did not throw expected SOAPException");
        } catch (UnsupportedOperationException e) {
            //Caught expected UnsupportedOperationException
        } catch (SOAPException e) {
            //Caught expected SOAPException
        } catch (IllegalArgumentException e) {
            //Caught expected IllegalArgumentException
        } catch (Exception e) {
            fail("Exception: " + e);
        }
    }
}
TOP

Related Classes of org.apache.axis2.saaj.SOAPFactoryTest

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.