hammant 2002/12/21 15:18:14
Modified: altrmi build.xml
altrmi/src/java/org/apache/excalibur/altrmi/server
AttributeHelper.java
altrmi/src/test/org/apache/excalibur/altrmi/test
AbstractHelloTestCase.java
altrmi/src/test/org/apache/excalibur/altrmi/test/http
CustomHttpServletTestCase.java
Added: altrmi/src/test/org/apache/excalibur/altrmi/test
AbstractAltrmiTestCase.java
altrmi/src/test/org/apache/excalibur/altrmi/test/http
JettyServletTestCase.java TestLogSink.java
TestServlet.java
Log:
Add a Jetty servlet testcase
Revision Changes Path
1.54 +6 -1 jakarta-avalon-excalibur/altrmi/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/build.xml,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- build.xml 21 Dec 2002 20:32:36 -0000 1.53
+++ build.xml 21 Dec 2002 23:18:13 -0000 1.54
@@ -264,9 +264,14 @@
<formatter type="plain" usefile="false"/> <!-- text reports for humans
-->
<batchtest todir="${build.tests}">
<fileset dir="${build.testclasses}">
+
+
+
+
<!--
+ <include name="**/test/**/JettyServletTestCase.class"/>
<include name="**/test/**/CustomHttpServletTestCase.class"/>
- -->
+-->
<include name="**/test/**/*TestCase.class"/>
<exclude name="**/Abstract*"/>
<exclude name="**/JSXObjectStreamTestCase.class"/>
1.3 +0 -1
jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/AttributeHelper.java
Index: AttributeHelper.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/AttributeHelper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AttributeHelper.java 21 Dec 2002 20:32:37 -0000 1.2
+++ AttributeHelper.java 21 Dec 2002 23:18:14 -0000 1.3
@@ -16,7 +16,6 @@
protected boolean isMethodAsync(Method method)
{
- System.out.println("method " + method.toString());
Attribute attr = Attributes.getAttribute(method, "altrmi:method");
return (attr == null ? false : attr.getValue().equals("async"));
}
1.8 +1 -24
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/AbstractHelloTestCase.java
Index: AbstractHelloTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/AbstractHelloTestCase.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AbstractHelloTestCase.java 26 Aug 2002 13:59:51 -0000 1.7
+++ AbstractHelloTestCase.java 21 Dec 2002 23:18:14 -0000 1.8
@@ -7,42 +7,19 @@
*/
package org.apache.excalibur.altrmi.test;
-import org.apache.excalibur.altrmi.server.impl.AbstractServer;
-import org.apache.excalibur.altrmi.client.AltrmiFactory;
-
import java.beans.PropertyVetoException;
import java.io.IOException;
-import junit.framework.TestCase;
-
/**
* Extended by classes that name the transport.
* @author Paul Hammant
*/
-public abstract class AbstractHelloTestCase extends TestCase
+public abstract class AbstractHelloTestCase extends AbstractAltrmiTestCase
{
- protected AbstractServer server;
- protected TestInterfaceImpl testServer;
- protected TestInterface testClient;
- protected AltrmiFactory altrmiFactory;
- protected boolean testForBug4499841 = true;
-
public AbstractHelloTestCase(String name)
{
super(name);
- }
-
- public void testHelloCall() throws Exception
- {
- // lookup worked ?
- assertNotNull(testClient);
-
- // Invoke a method over AltRMI.
- testClient.hello("Hello!?");
-
- // test the server has logged the message.
- assertEquals("Hello!?", ((TestInterfaceImpl)
testServer).getStoredState("void:hello(String)"));
}
public void testHello2Call() throws Exception
1.1
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/AbstractAltrmiTestCase.java
Index: AbstractAltrmiTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.altrmi.test;
import org.apache.excalibur.altrmi.server.impl.AbstractServer;
import org.apache.excalibur.altrmi.client.AltrmiFactory;
import java.beans.PropertyVetoException;
import java.io.IOException;
import junit.framework.TestCase;
/**
* Extended by classes that name the transport.
* @author Paul Hammant
*/
public abstract class AbstractAltrmiTestCase extends TestCase
{
protected AbstractServer server;
protected TestInterfaceImpl testServer;
protected TestInterface testClient;
protected AltrmiFactory altrmiFactory;
protected boolean testForBug4499841 = true;
public AbstractAltrmiTestCase(String name)
{
super(name);
}
public void testHelloCall() throws Exception
{
// lookup worked ?
assertNotNull(testClient);
// Invoke a method over AltRMI.
testClient.hello("Hello!?");
// test the server has logged the message.
assertEquals("Hello!?", ((TestInterfaceImpl)
testServer).getStoredState("void:hello(String)"));
}
}
1.4 +9 -3
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/http/CustomHttpServletTestCase.java
Index: CustomHttpServletTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/http/CustomHttpServletTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CustomHttpServletTestCase.java 21 Dec 2002 19:34:44 -0000 1.3
+++ CustomHttpServletTestCase.java 21 Dec 2002 23:18:14 -0000 1.4
@@ -16,22 +16,25 @@
import org.apache.excalibur.altrmi.test.TestInterface2;
import org.apache.excalibur.altrmi.test.TestInterface3;
import org.apache.excalibur.altrmi.test.TestInterfaceImpl;
+import org.apache.excalibur.altrmi.test.AbstractAltrmiTestCase;
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpServer;
import org.mortbay.http.SocketListener;
import org.mortbay.jetty.servlet.ServletHandler;
+import org.mortbay.util.Log;
/**
- * Test Custom Stream over sockets.
+ * Test Custom Stream over HTTP
* @author Paul Hammant
*/
-public class CustomHttpServletTestCase extends AbstractHelloTestCase
+public class CustomHttpServletTestCase extends AbstractAltrmiTestCase
{
private static final int HTTP_PORT = 8181;
HttpServer m_httpServer;
SocketListener m_listener;
HttpContext m_context;
+ TestLogSink m_testLogSink;
public CustomHttpServletTestCase(String name)
{
@@ -55,6 +58,10 @@
m_listener.setPort(HTTP_PORT);
m_httpServer.addListener(m_listener);
+ m_testLogSink = new TestLogSink();
+
+ Log.instance().add(m_testLogSink);
+
// Create a context
m_context = new HttpContext();
@@ -94,7 +101,6 @@
// threads, AltRMI being a client/server thing
Thread.yield();
}
-
protected void tearDown() throws Exception
{
1.1
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/http/JettyServletTestCase.java
Index: JettyServletTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.altrmi.test.http;
import junit.framework.TestCase;
import org.apache.excalibur.altrmi.server.impl.http.CustomHttpServlet;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpServer;
import org.mortbay.http.SocketListener;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.util.Log;
/**
* Test Jetty servlet in conjunction with HTTPClient
* @author Paul Hammant
*/
public class JettyServletTestCase extends TestCase
{
private static final int HTTP_PORT = 8181;
HttpServer m_httpServer;
SocketListener m_listener;
HttpContext m_context;
TestLogSink m_testLogSink;
public JettyServletTestCase(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
CustomHttpServlet customHttpServlet = new CustomHttpServlet();
KludgeServlet.setRealServlet(customHttpServlet);
// Create the server
m_httpServer = new HttpServer();
// Create a port listener
m_listener = new SocketListener();
m_listener.setPort(HTTP_PORT);
m_httpServer.addListener(m_listener);
m_testLogSink = new TestLogSink();
Log.instance().add(m_testLogSink);
// Create a context
m_context = new HttpContext();
m_context.setContextPath("/mystuff/*");
m_httpServer.addContext(m_context);
// Create a servlet container
ServletHandler servlets = new ServletHandler();
// Map a servlet onto the container
servlets.addServlet("Dump", "/Dump/*",
"org.apache.excalibur.altrmi.test.http.TestServlet");
m_context.addHandler(servlets);
// Start the http server
m_httpServer.start();
}
public void testHttpClientGet() throws Exception {
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost("localhost", HTTP_PORT, "http");
// we shouldn't have to wait if a connection is available
client.setHttpConnectionFactoryTimeout( 10 * 1000 );
GetMethod getMethod = new GetMethod("/mystuff/Dump");
client.executeMethod(getMethod);
assertEquals("Hello",new String(getMethod.getResponseBody()));
}
public void testHttpClientGet2() throws Exception {
// make sure the get is reentrant
testHttpClientGet();
}
protected void tearDown() throws Exception
{
m_httpServer.removeContext(m_context);
m_listener.stop();
m_httpServer.removeListener(m_listener);
m_httpServer.stop();
super.tearDown();
}
}
1.1
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/http/TestLogSink.java
Index: TestLogSink.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.altrmi.test.http;
import org.mortbay.util.LogSink;
import org.mortbay.util.Frame;
public class TestLogSink implements LogSink {
private String m_options;
public void setOptions(String s)
{
m_options = s;
}
public String getOptions()
{
return m_options;
}
public void log(String s, Object o, Frame frame, long l)
{
System.out.println("Jetty: " + s + ", " + o + ", " + l );
}
public void log(String s)
{
System.out.println("Jetty: " + s);
}
public void start() throws Exception
{
}
public void stop() throws InterruptedException
{
}
public boolean isStarted()
{
return true;
}
}
1.1
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/http/TestServlet.java
Index: TestServlet.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.altrmi.test.http;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
public class TestServlet extends HttpServlet
{
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse
httpServletResponse) throws ServletException, IOException
{
httpServletResponse.setContentType("text/plain");
final PrintWriter outputWriter = httpServletResponse.getWriter();
outputWriter.print("Hello");
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>