blob: d465bee6cb62b53f444109d9a486612c58253176 [file] [log] [blame]
/*
* Copyright 2002-2004 The Apache Software Foundation.
*
* 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 test.message;
import junit.framework.TestCase;
import org.apache.axis.Message;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.message.SOAPHeaderElement;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
/**
* Test SOAPEnvelope class.
*
* @author Glyn Normington (glyn@apache.org)
*/
public class TestSOAPEnvelope extends TestCase {
public TestSOAPEnvelope(String name) {
super(name);
}
// Test JAXM methods...
public void testName() throws Exception {
SOAPEnvelope env = new org.apache.axis.message.SOAPEnvelope();
Name n = env.createName("local", "pref", "urn:blah");
assertEquals("local part of name did not match", "local",
n.getLocalName());
assertEquals("qname of name did not match", "pref:local",
n.getQualifiedName());
assertEquals("prefix of name did not match", "pref",
n.getPrefix());
assertEquals("uri of name did not match", "urn:blah",
n.getURI());
Name n2 = env.createName("loc");
assertEquals("local part of name2 did not match", "loc",
n2.getLocalName());
}
public void testHeader() throws Exception {
SOAPEnvelope env = new org.apache.axis.message.SOAPEnvelope();
SOAPHeader h1 = env.getHeader();
assertTrue("null initial header", h1 != null);
h1.detachNode();
assertTrue("header not freed", env.getHeader() == null);
SOAPHeader h2 = env.addHeader();
assertTrue("null created header", h2 != null);
assertEquals("wrong header retrieved", h2, env.getHeader());
assertEquals("header parent incorrect", env, h2.getParentElement());
try {
env.addHeader();
assertTrue("second header added", false);
} catch (SOAPException e) {
}
}
public void testBody() throws Exception {
SOAPEnvelope env = new org.apache.axis.message.SOAPEnvelope();
SOAPBody b1 = env.getBody();
assertTrue("null initial body", b1 != null);
b1.detachNode();
assertTrue("body not freed", env.getBody() == null);
SOAPBody b2 = env.addBody();
assertTrue("null created body", b2 != null);
assertEquals("wrong body retrieved", b2, env.getBody());
assertEquals("body parent incorrect", env, b2.getParentElement());
try {
env.addBody();
assertTrue("second body added", false);
} catch (SOAPException e) {
}
}
// Test for bug #14570
public void testNullpointer() throws Exception{
org.apache.axis.message.SOAPEnvelope env=new org.apache.axis.message.SOAPEnvelope();
SOAPBodyElement bdy=new SOAPBodyElement();
bdy.setName("testResponse");
env.addBodyElement(bdy);
Message msg=new Message(env);
SOAPBodyElement sbe = msg.getSOAPEnvelope().getBodyByName(null,"testResponse");
assertTrue(sbe != null);
}
// Test for bug 14574
public void testNullpointerInHeader() throws Exception{
org.apache.axis.message.SOAPEnvelope env=new org.apache.axis.message.SOAPEnvelope();
SOAPHeaderElement hdr=new SOAPHeaderElement("", "testHeader");
env.addHeader(hdr);
Message msg=new Message(env);
SOAPHeaderElement she = msg.getSOAPEnvelope().getHeaderByName(null,"testHeader");
assertTrue(she != null);
}
public static void main(String args[]) throws Exception {
TestSOAPEnvelope tester = new TestSOAPEnvelope("TestSOAPEnvelope");
tester.testNullpointer();
tester.testNullpointerInHeader();
}
}