Author: veithen
Date: Thu Nov 18 22:36:21 2010
New Revision: 1036659
URL: http://svn.apache.org/viewvc?rev=1036659&view=rev
Log:
AXIS2-4889: Replaced SOAPConnectionTest#testGet by a no-nonsense test case.
Modified:
axis/axis2/java/core/trunk/modules/saaj/pom.xml
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
Modified: axis/axis2/java/core/trunk/modules/saaj/pom.xml
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/pom.xml?rev=1036659&r1=1036658&r2=1036659&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/saaj/pom.xml Thu Nov 18 22:36:21 2010
@@ -78,6 +78,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>5.1.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.3.2</version>
Modified:
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java?rev=1036659&r1=1036658&r2=1036659&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
(original)
+++
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
Thu Nov 18 22:36:21 2010
@@ -20,17 +20,24 @@
package org.apache.axis2.saaj;
import junit.framework.Assert;
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mortbay.http.HttpContext;
+import org.mortbay.http.HttpException;
+import org.mortbay.http.HttpHandler;
+import org.mortbay.http.HttpRequest;
+import org.mortbay.http.HttpResponse;
+import org.mortbay.http.SocketListener;
+import org.mortbay.http.handler.AbstractHttpHandler;
+import org.mortbay.jetty.Server;
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
+import javax.xml.soap.SOAPConstants;
+import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import java.io.IOException;
@@ -103,47 +110,38 @@ public class SOAPConnectionTest extends
@Validated @Test
- public void testGet() {
- if(isNetworkedResourceAvailable("http://java.sun.com/index.html")){
- try {
- SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl();
- SOAPConnection con = sf.createConnection();
- //Create a valid non webservice endpoint for invoking HTTP-GET
- URL urlEndpoint = new URL("http", "java.sun.com", 80,
"/index.html");
- //invoking HTTP-GET with a valid non webservice endpoint
should throw a SOAPException
- SOAPMessage reply = con.get(urlEndpoint);
- } catch (Exception e) {
- assertTrue(e instanceof SOAPException);
+ public void testGet() throws Exception {
+ Server server = new Server();
+ SocketListener listener = new SocketListener();
+ server.addListener(listener);
+ HttpContext context = new HttpContext(server, "/*");
+ HttpHandler handler = new AbstractHttpHandler() {
+ public void handle(String pathInContext, String pathParams,
+ HttpRequest request, HttpResponse response) throws
HttpException, IOException {
+
+ try {
+ SOAPMessage message =
MessageFactory.newInstance().createMessage();
+ SOAPBody body = message.getSOAPBody();
+ body.addChildElement("root");
+
response.setContentType(SOAPConstants.SOAP_1_1_CONTENT_TYPE);
+ message.writeTo(response.getOutputStream());
+ request.setHandled(true);
+ } catch (SOAPException ex) {
+ throw new RuntimeException("Failed to generate SOAP
message", ex);
+ }
}
- }else{
- //If resource is not available online, do a mock test
- assertTrue(true);
- }
- }
-
-
- private boolean isNetworkedResourceAvailable(String url) {
- HttpClient client = new HttpClient();
- GetMethod method = new GetMethod(url);
-
client.getHttpConnectionManager().getParams().setConnectionTimeout(1000);
- method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
- new DefaultHttpMethodRetryHandler(1,
false));
-
- try {
- int statusCode = client.executeMethod(method);
- if (statusCode != HttpStatus.SC_OK) {
- return false;
- }
-
- } catch (HttpException e) {
- e.printStackTrace();
- return false;
- } catch (IOException e) {
- e.printStackTrace();
- return false;
+ };
+ context.addHandler(handler);
+ server.start();
+ try {
+ SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl();
+ SOAPConnection con = sf.createConnection();
+ URL urlEndpoint = new URL("http", "localhost", listener.getPort(),
"/test");
+ SOAPMessage reply = con.get(urlEndpoint);
+ SOAPElement bodyElement =
(SOAPElement)reply.getSOAPBody().getChildElements().next();
+ assertEquals("root", bodyElement.getLocalName());
} finally {
- method.releaseConnection();
+ server.stop();
}
- return true;
- }
+ }
}