TestOnFaultHeaderspublic class TestOnFaultHeaders extends TestCase Confirm OnFault() header processing + additions work right. |
Fields Summary |
---|
public static String | TRIGGER_NS | public static String | TRIGGER_NAME | public static String | RESP_NAME | private org.apache.axis.configuration.SimpleProvider | provider | private org.apache.axis.server.AxisServer | engine | private org.apache.axis.transport.local.LocalTransport | localTransport | static final String | localURL |
Constructors Summary |
---|
public TestOnFaultHeaders(String s)
super(s);
|
Methods Summary |
---|
public void | setUp()
engine.init();
localTransport.setUrl(localURL);
SimpleChain chain = new SimpleChain();
chain.addHandler(new TestFaultHandler());
chain.addHandler(new TestHandler());
SOAPService service = new SOAPService(chain,
new RPCProvider(),
null);
service.setOption("className", TestService.class.getName());
service.setOption("allowedMethods", "*");
provider.deployService("testService", service);
| public void | testOnFaultHeaders()Add a header which will trigger a fault in the TestHandler, and
therefore trigger the onFault() in the TestFaultHandler. That should
put a header in the outgoing message, which we check for when we get
the fault.
Call call = new Call(new Service());
call.setTransport(localTransport);
SOAPHeaderElement header = new SOAPHeaderElement(TRIGGER_NS,
TRIGGER_NAME,
"do it");
call.addHeader(header);
try {
call.invoke("countChars", new Object [] { "foo" });
} catch (Exception e) {
SOAPEnvelope env = call.getResponseMessage().getSOAPEnvelope();
Vector headers = env.getHeaders();
assertEquals("Wrong # of headers in fault!", 1, headers.size());
SOAPHeaderElement respHeader = (SOAPHeaderElement)headers.get(0);
assertEquals("Wrong namespace for header", TRIGGER_NS,
respHeader.getNamespaceURI());
assertEquals("Wrong localName for response header", RESP_NAME,
respHeader.getName());
return;
}
fail("We should have gotten a fault!");
|
|