ndlesiecki 2003/06/21 19:50:41
Modified: framework/src/java/share/org/apache/cactus
AbstractWebServerTestCase.java
Log:
Added the unique ID concept, refactored in support of it
Revision Changes Path
1.8 +61 -16
jakarta-cactus/framework/src/java/share/org/apache/cactus/AbstractWebServerTestCase.java
Index: AbstractWebServerTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-cactus/framework/src/java/share/org/apache/cactus/AbstractWebServerTestCase.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AbstractWebServerTestCase.java 26 May 2003 11:45:23 -0000 1.7
+++ AbstractWebServerTestCase.java 22 Jun 2003 02:50:41 -0000 1.8
@@ -60,11 +60,14 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.net.HttpURLConnection;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import junit.framework.Test;
import org.apache.cactus.client.connector.http.DefaultHttpClient;
import org.apache.cactus.configuration.WebConfiguration;
+import org.apache.cactus.util.ChainedRuntimeException;
import org.apache.commons.logging.LogFactory;
/**
@@ -73,6 +76,7 @@
* on the server side.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
+ * <a href="mailto:[EMAIL PROTECTED]>Nicholas Lesiecki</a>
*
* @version $Id$
*/
@@ -239,25 +243,26 @@
private HttpURLConnection runWebTest(WebRequest theRequest,
DefaultHttpClient theHttpClient) throws Throwable
{
- // Add the class name, the method name, the URL to simulate and
+ // Add the class name, the method name, to the request to simulate and
// automatic session creation flag to the request
- // Note: All these pareameters are passed in the URL. This is to allow
- // the user to send whatever he wants in the request body. For example
- // a file, ...
- theRequest.addParameter(HttpServiceDefinition.CLASS_NAME_PARAM,
- this.getClass().getName(), WebRequest.GET_METHOD);
- theRequest.addParameter(HttpServiceDefinition.METHOD_NAME_PARAM,
- this.getCurrentTestMethod(), WebRequest.GET_METHOD);
- theRequest.addParameter(HttpServiceDefinition.AUTOSESSION_NAME_PARAM,
- theRequest.getAutomaticSession() ? "true" : "false",
- WebRequest.GET_METHOD);
+ addCactusCommand(HttpServiceDefinition.CLASS_NAME_PARAM,
+ this.getClass().getName(),
+ theRequest);
+ addCactusCommand(HttpServiceDefinition.METHOD_NAME_PARAM,
+ this.getCurrentTestMethod(),
+ theRequest);
+ addCactusCommand(HttpServiceDefinition.AUTOSESSION_NAME_PARAM,
+ theRequest.getAutomaticSession() ?
"true" : "false",
+ theRequest);
+
+ theRequest.setUniqueId(generateUniqueId());
// Add the wrapped test if it is not equal to our current instance
- if (getWrappedTest() != this)
+ if (wrappingATest())
{
- theRequest.addParameter(
- HttpServiceDefinition.WRAPPED_CLASS_NAME_PARAM,
- getWrappedTest().getClass().getName(), WebRequest.GET_METHOD);
+
addCactusCommand(HttpServiceDefinition.WRAPPED_CLASS_NAME_PARAM,
+ wrappedTestName(),
+ theRequest);
}
// Add the simulated URL (if one has been defined)
@@ -273,6 +278,46 @@
return connection;
}
+
+ private String wrappedTestName()
+ {
+ return getWrappedTest().getClass().getName();
+ }
+
+ private boolean wrappingATest() {
+ return getWrappedTest() != this;
+ }
+
+ private String generateUniqueId() {
+ String id = "testCase:" +this.getClass().getName()+"_";
+ id += "testMethod:" + this.getCurrentTestMethod()+"_";
+ if(wrappingATest()){
+ id += "wrapping:"+wrappedTestName()+"_";
+ }
+ id += "thread:" + Thread.currentThread().toString()+"_";
+ id += "runtime_hash:" + Runtime.getRuntime().hashCode()+"_";
+ id += "client_ip:" + getIp()+"_";
+ id += "time:" + System.currentTimeMillis()+"_";
+ return id;
+ }
+
+ private String getIp()
+ {
+ InetAddress thisIp;
+ try
+ {
+ thisIp = InetAddress.getLocalHost();
+ } catch (UnknownHostException e)
+ {
+ throw new ChainedRuntimeException(e);
+ }
+ return thisIp.getHostAddress();
+ }
+
+
+ private void addCactusCommand(String commandName, String commandValue,
WebRequest theRequest) {
+ theRequest.addCactusCommand(commandName, commandValue);
+ }
/**
* Runs a test case. This method is overriden from the JUnit
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]