1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.ws.addressing.handler;
18
19 import org.apache.axis.message.MessageElement;
20 import org.apache.axis.message.addressing.Action;
21 import org.apache.axis.message.addressing.Address;
22 import org.apache.axis.message.addressing.AddressingHeaders;
23 import org.apache.axis.message.addressing.Constants;
24 import org.apache.axis.message.addressing.FaultTo;
25 import org.apache.axis.message.addressing.From;
26 import org.apache.axis.message.addressing.PortType;
27 import org.apache.axis.message.addressing.Recipient;
28 import org.apache.axis.message.addressing.ReferencePropertiesType;
29 import org.apache.axis.message.addressing.RelatesTo;
30 import org.apache.axis.message.addressing.ReplyTo;
31 import org.apache.axis.message.addressing.ServiceNameType;
32 import org.apache.axis.message.addressing.To;
33 import org.apache.axis.types.URI;
34
35 import javax.xml.namespace.QName;
36 import javax.xml.rpc.handler.soap.SOAPMessageContext;
37 import java.util.Map;
38
39 /***
40 * Test case for {@link ServerSideAddressingHandler}.
41 */
42 public class ServerSideAddressingHandlerTestCase extends AbstractAddressingHandlerTestCase {
43
44 ServerSideAddressingHandler m_handler;
45
46 protected void setUp() throws Exception {
47 m_handler = new ServerSideAddressingHandler();
48 Map handlerConfig = createHandlerConfig(ACTOR_NEXT, Boolean.FALSE.toString(), "*");
49 m_handler.init(createHandlerInfo(ServerSideAddressingHandler.class,handlerConfig));
50 }
51
52 protected AbstractAddressingHandler getHandler() {
53 return m_handler;
54 }
55
56 /***
57 * Test for {@link ServerSideAddressingHandler#handleRequest(javax.xml.rpc.handler.MessageContext)}.
58 *
59 * @throws Exception on error
60 */
61 public void testHandleRequest() throws Exception {
62 SOAPMessageContext msgContext = createSOAPMessageContext();
63 msgContext.setMessage(createMessage("org/apache/ws/addressing/handler/testRequest.xml"));
64 assertTrue("handleRequest() should always return true", m_handler.handleRequest(msgContext));
65 Object prop = msgContext.getProperty(Constants.ENV_ADDRESSING_REQUEST_HEADERS);
66 assertNotNull(prop);
67 assertTrue(prop instanceof AddressingHeaders);
68 AddressingHeaders addrHeaders = (AddressingHeaders) prop;
69 assertFalse(addrHeaders.isSetMustUnderstand());
70 checkMessageIdHeader(addrHeaders, "aaaabbbb-cccc-dddd-eeee-ffffffffffff");
71 checkRelatesToHeader(addrHeaders, new RelatesTo[]{new RelatesTo("uuid:11112222-3333-4444-5555-666666666666", "{urn:testNS}testPart"),
72 new RelatesTo("uuid:11112222-3333-4444-5555-999999999999", Constants.QNAME_RESPONSE.toString())});
73 ReplyTo expectedReplyTo = new ReplyTo(new Address(Constants.NS_URI_ANONYMOUS));
74 expectedReplyTo.setPortType(new PortType("urn:Foo", "Test"));
75 expectedReplyTo.setServiceName(new ServiceNameType("urn:Bar", "Test2"));
76 checkReplyToHeader(addrHeaders, expectedReplyTo);
77 checkFaultToHeader(addrHeaders, new FaultTo(new Address("http://business456.com/deadletters")));
78 checkToHeader(addrHeaders, new To("mailto:joe@fabrikam123.com"));
79 checkFromHeader(addrHeaders, new From(new Address("http://business456.com/client1")));
80 checkRecipientHeader(addrHeaders, new Recipient(new Address("http://blah.com:8080/axis/services/tester")));
81 checkActionHeader(addrHeaders, new Action(new URI("http://foo.com/mail#Get")));
82 ReferencePropertiesType expectedRefPropsType = new ReferencePropertiesType();
83 expectedRefPropsType.set_any(new MessageElement[]{new MessageElement(new QName("http://www/hp/com/", "ResourceID"), "1234")});
84 checkReferenceProperties(addrHeaders, expectedRefPropsType);
85 }
86
87 /***
88 * Test for {@link ServerSideAddressingHandler#handleResponse(javax.xml.rpc.handler.MessageContext)}.
89 *
90 * @throws Exception on error
91 */
92 public void testHandleResponse() throws Exception {
93 SOAPMessageContext msgContext = createSOAPMessageContext();
94 msgContext.setMessage(createMessage("org/apache/ws/addressing/handler/testRequest.xml"));
95 m_handler.handleRequest(msgContext);
96 msgContext.setMessage(createMessage("org/apache/ws/addressing/handler/testResponse.xml"));
97 assertTrue("handleResponse() should always return true", m_handler.handleResponse(msgContext));
98 Object prop = msgContext.getProperty(Constants.ENV_ADDRESSING_RESPONSE_HEADERS);
99 assertNotNull(prop);
100 assertTrue(prop instanceof AddressingHeaders);
101 AddressingHeaders addrHeaders = (AddressingHeaders) prop;
102 assertFalse(addrHeaders.isSetMustUnderstand());
103 checkMessageIdHeader(addrHeaders, null);
104 checkRelatesToHeader(addrHeaders, new RelatesTo[]{new RelatesTo("uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff", Constants.QNAME_RESPONSE.toString())});
105 checkReplyToHeader(addrHeaders, null);
106 checkFaultToHeader(addrHeaders, null);
107 checkToHeader(addrHeaders, new To(Constants.NS_URI_ANONYMOUS));
108 checkFromHeader(addrHeaders, new From(new Address("mailto:joe@fabrikam123.com")));
109 checkRecipientHeader(addrHeaders, null);
110 checkActionHeader(addrHeaders, new Action(new URI("http://foo.com/mail#GetResponse")));
111 checkReferenceProperties(addrHeaders, new ReferencePropertiesType());
112 }
113
114 /***
115 * Test for {@link ServerSideAddressingHandler#handleFault(javax.xml.rpc.handler.MessageContext)}.
116 *
117 * @throws Exception on error
118 */
119 public void testHandleFault() throws Exception {
120
121 System.err.println("WARN: testHandleFault() not implemented.");
122 }
123
124 }