Author: veithen
Date: Sun Dec 30 13:32:58 2012
New Revision: 1426937
URL: http://svn.apache.org/viewvc?rev=1426937&view=rev
Log:
Eliminated several instances of the catch-and-fail JUnit anti-pattern.
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/HeadersHandlerTests.java
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/HeadersHandlerTests.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/HeadersHandlerTests.java?rev=1426937&r1=1426936&r2=1426937&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/HeadersHandlerTests.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/HeadersHandlerTests.java
Sun Dec 30 13:32:58 2012
@@ -80,288 +80,273 @@ public class HeadersHandlerTests extends
- public void testHeadersHandler() {
- try {
- TestLogger.logger.debug("----------------------------------");
- TestLogger.logger.debug("test: " + getName());
+ public void testHeadersHandler() throws Exception {
+ TestLogger.logger.debug("----------------------------------");
+ TestLogger.logger.debug("test: " + getName());
- HeadersHandlerService service = new HeadersHandlerService();
- HeadersHandlerPortType proxy = service.getHeadersHandlerPort();
- BindingProvider p = (BindingProvider) proxy;
- Map<String, Object> requestCtx = p.getRequestContext();
-
- requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
axisEndpoint);
-
- /*
- * add several headers by way of HeadersAdapter property
- */
- String acoh1, acoh2, acoh3, acoh4, acoh5, acoh6;
- SOAPFactory sf = SOAPFactory.newInstance();
- try {
- Map<QName, List<String>> requestHeaders = new HashMap<QName,
List<String>>();
-
- // QName used here should match the key for the list set on the
requestCtx
- acoh1 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL1);
-
- // QName used here should match the key for the list set on the
requestCtx
- acoh2 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL2);
-
- // QName used here should match the key for the list set on the
requestCtx
- acoh3 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL3);
-
- // QName used here should match the key for the list set on the
requestCtx
- acoh4 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
-
- // create additional header strings that will need to be
checked:
- acoh5 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH3_HEADER_QNAME,
TestHeaders.CONTENT_LARGE);
- acoh6 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH4_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
-
- List<String> list1 = new ArrayList<String>();
- list1.add(acoh1);
- list1.add(acoh2);
-
- List<String> list2 = new ArrayList<String>();
- list2.add(acoh3);
- list2.add(acoh4);
-
- requestHeaders.put(TestHeaders.ACOH1_HEADER_QNAME, list1);
- requestHeaders.put(TestHeaders.ACOH2_HEADER_QNAME, list2);
- requestCtx.put(Constants.JAXWS_OUTBOUND_SOAP_HEADERS,
requestHeaders);
- } catch (Throwable e) {
- fail(e.getMessage());
- return;
- }
+ HeadersHandlerService service = new HeadersHandlerService();
+ HeadersHandlerPortType proxy = service.getHeadersHandlerPort();
+ BindingProvider p = (BindingProvider) proxy;
+ Map<String, Object> requestCtx = p.getRequestContext();
+
+ requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
axisEndpoint);
+
+ /*
+ * add several headers by way of HeadersAdapter property
+ */
+ String acoh1, acoh2, acoh3, acoh4, acoh5, acoh6;
+ SOAPFactory sf = SOAPFactory.newInstance();
+ try {
+ Map<QName, List<String>> requestHeaders = new HashMap<QName,
List<String>>();
- // some handlers decrement the value, so we can confirm SOAP
body manipulation does not corrupt the headers
- int numOfHandlerHitsInFlow = 3;
-
- int intParam1 = 10;
- int intParam2 = 10;
- int total = proxy.headersHandler(intParam1, intParam2);
-
- assertEquals("Return value should be " + (intParam1 + intParam2 -
numOfHandlerHitsInFlow) + " but was " + total ,
- (intParam1 + intParam2 - numOfHandlerHitsInFlow),
- total);
- TestLogger.logger.debug("Total (after handler manipulation) = " +
total);
-
- /*
- * I tried to give enough info below in the expected_calls list so
you can tell what's
- * being tested without having to look at handler code. All
header manipulation is
- * done by SOAPHeadersAdapter.
- *
- * TODO: I would very much like to have done some other means of
- * header manipulation, but the Axis2 SAAJ module is lacking
necessary implementation
- * to do this with any reliability.
- */
-
- String log = readLogFile();
- String expected_calls =
- // client outbound
- "HeadersClientLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh1+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh2+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh3+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh4+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh1+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh3+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh4+"\n"
// message manipulated after this action
- + "HeadersClientProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER
"+acoh2+"\n"
- + "HeadersClientProtocolHandler ADDED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh2+"\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh5+"\n"
- + "HeadersClientProtocolHandler GET_HEADERS\n"
- + "HeadersClientProtocolHandler2 GET_HEADERS\n"
- // server inbound
- + "HeadersServerProtocolHandler GET_HEADERS\n"
- + "HeadersServerProtocolHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh2+"\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh2+"\n"
- + "HeadersServerProtocolHandler ADDED_HEADER "+acoh6+"\n"
- + "HeadersServerLogicalHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh6+"\n"
- + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh5+"\n"
// message manipulated after this action
- + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh6+"\n"
- // server outbound
- + "HeadersServerLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersServerLogicalHandler ADDED_HEADER "+acoh1+"\n"
// message manipulated after this action
- + "HeadersServerProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh1+"\n"
- + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh1+"\n"
- + "HeadersServerProtocolHandler ADDED_HEADER "+acoh5+"\n"
- + "HeadersServerLogicalHandler CLOSE\n"
- + "HeadersServerProtocolHandler CLOSE\n"
- // client inbound
- + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh5+"\n"
- + "HeadersClientProtocolHandler2 ADDED_HEADER "+acoh3+"\n"
- + "HeadersClientProtocolHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh3+"\n"
- + "HeadersClientProtocolHandler REMOVED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler ADDED_HEADER "+acoh4+"\n"
- + "HeadersClientLogicalHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler2 CLOSE\n"
- + "HeadersClientProtocolHandler CLOSE\n"
- + "HeadersClientLogicalHandler CLOSE\n";
-
- assertEquals(expected_calls, log);
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh1 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL1);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh2 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL2);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh3 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL3);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh4 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
+
+ // create additional header strings that will need to be
checked:
+ acoh5 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH3_HEADER_QNAME,
TestHeaders.CONTENT_LARGE);
+ acoh6 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH4_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
+
+ List<String> list1 = new ArrayList<String>();
+ list1.add(acoh1);
+ list1.add(acoh2);
+
+ List<String> list2 = new ArrayList<String>();
+ list2.add(acoh3);
+ list2.add(acoh4);
+
+ requestHeaders.put(TestHeaders.ACOH1_HEADER_QNAME, list1);
+ requestHeaders.put(TestHeaders.ACOH2_HEADER_QNAME, list2);
+ requestCtx.put(Constants.JAXWS_OUTBOUND_SOAP_HEADERS,
requestHeaders);
+ } catch (Throwable e) {
+ fail(e.getMessage());
+ return;
+ }
+
+ // some handlers decrement the value, so we can confirm SOAP body
manipulation does not corrupt the headers
+ int numOfHandlerHitsInFlow = 3;
+
+ int intParam1 = 10;
+ int intParam2 = 10;
+ int total = proxy.headersHandler(intParam1, intParam2);
+
+ assertEquals("Return value should be " + (intParam1 + intParam2 -
numOfHandlerHitsInFlow) + " but was " + total ,
+ (intParam1 + intParam2 - numOfHandlerHitsInFlow),
+ total);
+ TestLogger.logger.debug("Total (after handler manipulation) = " +
total);
+
+ /*
+ * I tried to give enough info below in the expected_calls list so you
can tell what's
+ * being tested without having to look at handler code. All header
manipulation is
+ * done by SOAPHeadersAdapter.
+ *
+ * TODO: I would very much like to have done some other means of
+ * header manipulation, but the Axis2 SAAJ module is lacking necessary
implementation
+ * to do this with any reliability.
+ */
+
+ String log = readLogFile();
+ String expected_calls =
+ // client outbound
+ "HeadersClientLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh1+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh3+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh4+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh1+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh3+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh4+"\n"
// message manipulated after this action
+ + "HeadersClientProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientProtocolHandler ADDED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler GET_HEADERS\n"
+ + "HeadersClientProtocolHandler2 GET_HEADERS\n"
+ // server inbound
+ + "HeadersServerProtocolHandler GET_HEADERS\n"
+ + "HeadersServerProtocolHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh2+"\n"
+ + "HeadersServerProtocolHandler ADDED_HEADER "+acoh6+"\n"
+ + "HeadersServerLogicalHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh6+"\n"
+ + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh5+"\n"
// message manipulated after this action
+ + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh6+"\n"
+ // server outbound
+ + "HeadersServerLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersServerLogicalHandler ADDED_HEADER "+acoh1+"\n" //
message manipulated after this action
+ + "HeadersServerProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh1+"\n"
+ + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh1+"\n"
+ + "HeadersServerProtocolHandler ADDED_HEADER "+acoh5+"\n"
+ + "HeadersServerLogicalHandler CLOSE\n"
+ + "HeadersServerProtocolHandler CLOSE\n"
+ // client inbound
+ + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler2 ADDED_HEADER "+acoh3+"\n"
+ + "HeadersClientProtocolHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh3+"\n"
+ + "HeadersClientProtocolHandler REMOVED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler ADDED_HEADER "+acoh4+"\n"
+ + "HeadersClientLogicalHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler2 CLOSE\n"
+ + "HeadersClientProtocolHandler CLOSE\n"
+ + "HeadersClientLogicalHandler CLOSE\n";
+
+ assertEquals(expected_calls, log);
- } catch (Exception e) {
- e.printStackTrace();
- TestLogger.logger.debug("ERROR", e);
- fail(e.getMessage());
- }
TestLogger.logger.debug("----------------------------------");
}
- public void testHeadersHandlerAsyncCallback() {
- try {
- TestLogger.logger.debug("----------------------------------");
- TestLogger.logger.debug("test: " + getName());
-
- HeadersHandlerService service = new HeadersHandlerService();
- HeadersHandlerPortType proxy = service.getHeadersHandlerPort();
- BindingProvider p = (BindingProvider) proxy;
- Map<String, Object> requestCtx = p.getRequestContext();
-
- requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
axisEndpoint);
-
- /*
- * add several headers by way of HeadersAdapter property
- */
- String acoh1, acoh2, acoh3, acoh4, acoh5, acoh6;
- SOAPFactory sf = SOAPFactory.newInstance();
- try {
- Map<QName, List<String>> requestHeaders = new HashMap<QName,
List<String>>();
-
- // QName used here should match the key for the list set on
the requestCtx
- acoh1 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL1);
-
- // QName used here should match the key for the list set on
the requestCtx
- acoh2 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL2);
-
- // QName used here should match the key for the list set on
the requestCtx
- acoh3 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL3);
-
- // QName used here should match the key for the list set on
the requestCtx
- acoh4 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
-
- // create additional header strings that will need to be
checked:
- acoh5 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH3_HEADER_QNAME,
TestHeaders.CONTENT_LARGE);
- acoh6 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH4_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
-
- List<String> list1 = new ArrayList<String>();
- list1.add(acoh1);
- list1.add(acoh2);
-
- List<String> list2 = new ArrayList<String>();
- list2.add(acoh3);
- list2.add(acoh4);
-
- requestHeaders.put(TestHeaders.ACOH1_HEADER_QNAME, list1);
- requestHeaders.put(TestHeaders.ACOH2_HEADER_QNAME, list2);
- requestCtx.put(Constants.JAXWS_OUTBOUND_SOAP_HEADERS,
requestHeaders);
- } catch (Throwable e) {
- fail(e.getMessage());
- return;
- }
-
- // some handlers decrement the value, so we can confirm SOAP body
manipulation does not corrupt the headers
- int numOfHandlerHitsInFlow = 3;
-
- int intParam1 = 10;
- int intParam2 = 10;
-
- HeadersHandlerAsyncCallback callback = new
HeadersHandlerAsyncCallback();
- Future<?> future = proxy.headersHandlerAsync(intParam1, intParam2,
callback);
-
- while (!future.isDone()) {
- Thread.sleep(1000);
- TestLogger.logger.debug("Async invocation incomplete");
- }
+ public void testHeadersHandlerAsyncCallback() throws Exception {
+ TestLogger.logger.debug("----------------------------------");
+ TestLogger.logger.debug("test: " + getName());
- int total = callback.getResponseValue();
-
-
- assertEquals("Return value should be " + (intParam1 + intParam2 -
numOfHandlerHitsInFlow) + " but was " + total ,
- (intParam1 + intParam2 - numOfHandlerHitsInFlow),
- total);
- TestLogger.logger.debug("Total (after handler manipulation) = " +
total);
-
- /*
- * I tried to give enough info below in the expected_calls list so
you can tell what's
- * being tested without having to look at handler code. All
header manipulation is
- * done by SOAPHeadersAdapter.
- *
- * TODO: I would very much like to have done some other means of
- * header manipulation, but the Axis2 SAAJ module is lacking
necessary implementation
- * to do this with any reliability.
- */
-
- String log = readLogFile();
- String expected_calls =
- // client outbound
- "HeadersClientLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh1+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh2+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh3+"\n"
- + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh4+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh1+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh3+"\n"
- + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh4+"\n"
// message manipulated after this action
- + "HeadersClientProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER
"+acoh2+"\n"
- + "HeadersClientProtocolHandler ADDED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh2+"\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh5+"\n"
- + "HeadersClientProtocolHandler GET_HEADERS\n"
- + "HeadersClientProtocolHandler2 GET_HEADERS\n"
- // server inbound
- + "HeadersServerProtocolHandler GET_HEADERS\n"
- + "HeadersServerProtocolHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh2+"\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh2+"\n"
- + "HeadersServerProtocolHandler ADDED_HEADER "+acoh6+"\n"
- + "HeadersServerLogicalHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh6+"\n"
- + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh5+"\n"
// message manipulated after this action
- + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh6+"\n"
- // server outbound
- + "HeadersServerLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersServerLogicalHandler ADDED_HEADER "+acoh1+"\n"
// message manipulated after this action
- + "HeadersServerProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
- + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh1+"\n"
- + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh1+"\n"
- + "HeadersServerProtocolHandler ADDED_HEADER "+acoh5+"\n"
- + "HeadersServerLogicalHandler CLOSE\n"
- + "HeadersServerProtocolHandler CLOSE\n"
- // client inbound
- + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler2 CHECKED_HEADER
"+acoh5+"\n"
- + "HeadersClientProtocolHandler2 ADDED_HEADER "+acoh3+"\n"
- + "HeadersClientProtocolHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh3+"\n"
- + "HeadersClientProtocolHandler REMOVED_HEADER "+acoh5+"\n"
- + "HeadersClientProtocolHandler ADDED_HEADER "+acoh4+"\n"
- + "HeadersClientLogicalHandler HANDLE_MESSAGE_INBOUND\n"
- + "HeadersClientProtocolHandler2 CLOSE\n"
- + "HeadersClientProtocolHandler CLOSE\n"
- + "HeadersClientLogicalHandler CLOSE\n";
-
- assertEquals(expected_calls, log);
+ HeadersHandlerService service = new HeadersHandlerService();
+ HeadersHandlerPortType proxy = service.getHeadersHandlerPort();
+ BindingProvider p = (BindingProvider) proxy;
+ Map<String, Object> requestCtx = p.getRequestContext();
+
+ requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
axisEndpoint);
+
+ /*
+ * add several headers by way of HeadersAdapter property
+ */
+ String acoh1, acoh2, acoh3, acoh4, acoh5, acoh6;
+ SOAPFactory sf = SOAPFactory.newInstance();
+
+ Map<QName, List<String>> requestHeaders = new HashMap<QName,
List<String>>();
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh1 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL1);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh2 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH1_HEADER_QNAME,
TestHeaders.CONTENT_SMALL2);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh3 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL3);
+
+ // QName used here should match the key for the list set on the
requestCtx
+ acoh4 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH2_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
+
+ // create additional header strings that will need to be checked:
+ acoh5 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH3_HEADER_QNAME,
TestHeaders.CONTENT_LARGE);
+ acoh6 =
TestHeaders.createHeaderXMLString(TestHeaders.ACOH4_HEADER_QNAME,
TestHeaders.CONTENT_SMALL4);
+
+ List<String> list1 = new ArrayList<String>();
+ list1.add(acoh1);
+ list1.add(acoh2);
+
+ List<String> list2 = new ArrayList<String>();
+ list2.add(acoh3);
+ list2.add(acoh4);
+
+ requestHeaders.put(TestHeaders.ACOH1_HEADER_QNAME, list1);
+ requestHeaders.put(TestHeaders.ACOH2_HEADER_QNAME, list2);
+ requestCtx.put(Constants.JAXWS_OUTBOUND_SOAP_HEADERS, requestHeaders);
+
+ // some handlers decrement the value, so we can confirm SOAP body
manipulation does not corrupt the headers
+ int numOfHandlerHitsInFlow = 3;
+
+ int intParam1 = 10;
+ int intParam2 = 10;
+
+ HeadersHandlerAsyncCallback callback = new
HeadersHandlerAsyncCallback();
+ Future<?> future = proxy.headersHandlerAsync(intParam1, intParam2,
callback);
+
+ while (!future.isDone()) {
+ Thread.sleep(1000);
+ TestLogger.logger.debug("Async invocation incomplete");
+ }
+
+ int total = callback.getResponseValue();
+
+
+ assertEquals("Return value should be " + (intParam1 + intParam2 -
numOfHandlerHitsInFlow) + " but was " + total ,
+ (intParam1 + intParam2 - numOfHandlerHitsInFlow),
+ total);
+ TestLogger.logger.debug("Total (after handler manipulation) = " +
total);
+
+ /*
+ * I tried to give enough info below in the expected_calls list so you
can tell what's
+ * being tested without having to look at handler code. All header
manipulation is
+ * done by SOAPHeadersAdapter.
+ *
+ * TODO: I would very much like to have done some other means of
+ * header manipulation, but the Axis2 SAAJ module is lacking necessary
implementation
+ * to do this with any reliability.
+ */
+
+ String log = readLogFile();
+ String expected_calls =
+ // client outbound
+ "HeadersClientLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh1+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh3+"\n"
+ + "HeadersClientLogicalHandler CHECKED_HEADER "+acoh4+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh1+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh3+"\n"
+ + "HeadersClientLogicalHandler REMOVED_HEADER "+acoh4+"\n"
// message manipulated after this action
+ + "HeadersClientProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientProtocolHandler ADDED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler GET_HEADERS\n"
+ + "HeadersClientProtocolHandler2 GET_HEADERS\n"
+ // server inbound
+ + "HeadersServerProtocolHandler GET_HEADERS\n"
+ + "HeadersServerProtocolHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh2+"\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh2+"\n"
+ + "HeadersServerProtocolHandler ADDED_HEADER "+acoh6+"\n"
+ + "HeadersServerLogicalHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersServerLogicalHandler CHECKED_HEADER "+acoh6+"\n"
+ + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh5+"\n"
// message manipulated after this action
+ + "HeadersServerLogicalHandler REMOVED_HEADER "+acoh6+"\n"
+ // server outbound
+ + "HeadersServerLogicalHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersServerLogicalHandler ADDED_HEADER "+acoh1+"\n" //
message manipulated after this action
+ + "HeadersServerProtocolHandler HANDLE_MESSAGE_OUTBOUND\n"
+ + "HeadersServerProtocolHandler CHECKED_HEADER "+acoh1+"\n"
+ + "HeadersServerProtocolHandler REMOVED_HEADER "+acoh1+"\n"
+ + "HeadersServerProtocolHandler ADDED_HEADER "+acoh5+"\n"
+ + "HeadersServerLogicalHandler CLOSE\n"
+ + "HeadersServerProtocolHandler CLOSE\n"
+ // client inbound
+ + "HeadersClientProtocolHandler2 HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler2 CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler2 ADDED_HEADER "+acoh3+"\n"
+ + "HeadersClientProtocolHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler CHECKED_HEADER "+acoh3+"\n"
+ + "HeadersClientProtocolHandler REMOVED_HEADER "+acoh5+"\n"
+ + "HeadersClientProtocolHandler ADDED_HEADER "+acoh4+"\n"
+ + "HeadersClientLogicalHandler HANDLE_MESSAGE_INBOUND\n"
+ + "HeadersClientProtocolHandler2 CLOSE\n"
+ + "HeadersClientProtocolHandler CLOSE\n"
+ + "HeadersClientLogicalHandler CLOSE\n";
+
+ assertEquals(expected_calls, log);
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
TestLogger.logger.debug("----------------------------------");
}