Package test.message

Source Code of test.message.TestMUValues

package test.message;

import junit.framework.TestCase;
import org.apache.axis.AxisEngine;
import org.apache.axis.Constants;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.message.SOAPHeaderElement;
import org.apache.axis.server.AxisServer;

/**
* This test confirms the behavior of the various possible values for
* the mustUnderstand attribute in both SOAP 1.1 and SOAP 1.2.  In particular:
*
* For SOAP 1.1, the only valid values are "0" and "1"
* For SOAP 1.2, "0"/"false" and "1"/"true" are valid
*
* @author Glen Daniels (gdaniels@apache.org)
*/
public class TestMUValues extends TestCase {
    private AxisEngine engine;

    public TestMUValues(String name) {
        super(name);
    }

    private String header =
        "<?xml version=\"1.0\"?>\n" +
        "<soap:Envelope " +
          "xmlns:soap=\"";
   
    private String middle = "\">\n" +
          "<soap:Header>\n" +
            "<test soap:mustUnderstand=\"";
   
    private String footer =
            "\"/>\n" +
          "</soap:Header>\n" +
          "<soap:Body>\n" +
            "<noContent/>\n" +
          "</soap:Body>\n" +
        "</soap:Envelope>\n";

    public void setUp() throws Exception {
        SimpleProvider provider = new SimpleProvider();
        engine = new AxisServer(provider);
    }
   
    public void checkVal(String val, boolean desiredResult, String ns)
            throws Exception {
        String request = header + ns + middle + val + footer;

        // create a message in context
        MessageContext msgContext = new MessageContext(engine);
        Message message = new Message(request);
        message.setMessageContext(msgContext);

        // Parse the message and check the mustUnderstand value
        SOAPEnvelope envelope = message.getSOAPEnvelope();
        SOAPHeaderElement header = envelope.getHeaderByName("", "test");
        assertEquals("MustUnderstand value wasn't right using value '" +
                     val + "'",
                     desiredResult, header.getMustUnderstand());
    }

    public void testMustUnderstandValues() throws Exception {
        String soap12 = Constants.URI_SOAP12_ENV;
        String soap11 = Constants.URI_SOAP11_ENV;
       
        checkVal("0", false, soap12);
        checkVal("1", true, soap12);
        checkVal("true", true, soap12);
        checkVal("false", false, soap12);
        try {
            checkVal("dennis", false, soap12);
            fail("Didn't throw exception with bad MU value");
        } catch (Exception e) {
        }

        checkVal("0", false, soap11);
        checkVal("1", true, soap11);
        try {
            checkVal("true", false, soap11);
            fail("Didn't throw exception with bad MU value");
        } catch (Exception e) {
        }
        try {
            checkVal("false", false, soap11);
            fail("Didn't throw exception with bad MU value");
        } catch (Exception e) {
        }
        try {
            checkVal("dennis", false, soap11);
            fail("Didn't throw exception with bad MU value");
        } catch (Exception e) {
        }
    }
}
TOP

Related Classes of test.message.TestMUValues

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.