X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2FSimpleResultPart.java;h=543cc98bb89849cefbbe5b626205fdd169daefdf;hb=62e442adb36b006627b17061864dfa4edde0a99a;hp=da0ddcbebfcde8db0954104ba40bef26a40d8bba;hpb=d5d72139e7497923c2b8e2f4d25f366d01425498;p=gpl%2Fargeo-slc.git
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
index da0ddcbeb..543cc98bb 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
@@ -1,5 +1,14 @@
package org.argeo.slc.core.test;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.List;
+import java.util.Vector;
+
+import org.apache.commons.io.IOUtils;
+
/**
*
* Basic implementation of a result part, implementing the standard three status
@@ -8,15 +17,19 @@ package org.argeo.slc.core.test;
*
* @see TestStatus
*/
-public class SimpleResultPart implements TestResultPart, TestStatus {
+public class SimpleResultPart implements TestResultPart, TestStatus,
+ TestRunAware {
- /** For ORM */
+ /** @deprecated */
private Long tid;
+ private String testRunUuid;
+
/** The status. Default to ERROR since it should always be explicitely set. */
private Integer status = ERROR;
private String message;
- private Exception exception;
+ private String exceptionMessage;
+ private List exceptionStackLines = new Vector();
public SimpleResultPart() {
}
@@ -28,7 +41,7 @@ public class SimpleResultPart implements TestResultPart, TestStatus {
public SimpleResultPart(Integer status, String message, Exception exception) {
this.status = status;
this.message = message;
- this.exception = exception;
+ setException(exception);
}
public String getMessage() {
@@ -47,12 +60,29 @@ public class SimpleResultPart implements TestResultPart, TestStatus {
return status;
}
- public Exception getException() {
- return exception;
+ public String getExceptionMessage() {
+ return exceptionMessage;
}
public void setException(Exception exception) {
- this.exception = exception;
+ if (exception == null)
+ return;
+
+ this.exceptionMessage = exception.getMessage();
+
+ StringWriter writer = null;
+ StringReader reader = null;
+ try {
+ writer = new StringWriter();
+ exception.printStackTrace(new PrintWriter(writer));
+ reader = new StringReader(writer.toString());
+ exceptionStackLines = new Vector(IOUtils.readLines(reader));
+ } catch (IOException e) {
+ // silent
+ } finally {
+ IOUtils.closeQuietly(writer);
+ IOUtils.closeQuietly(reader);
+ }
}
@Override
@@ -65,18 +95,42 @@ public class SimpleResultPart implements TestResultPart, TestStatus {
buf.append(" ");
}
buf.append(message);
- if (exception != null) {
- buf.append("(").append(exception.getMessage()).append(")");
- }
return buf.toString();
}
+ /** @deprecated */
Long getTid() {
return tid;
}
+ /** @deprecated */
void setTid(Long tid) {
this.tid = tid;
}
+ public String getTestRunUuid() {
+ return testRunUuid;
+ }
+
+ /** For ORM */
+ public void setTestRunUuid(String testRunUuid) {
+ this.testRunUuid = testRunUuid;
+ }
+
+ public void notifyTestRun(TestRun testRun) {
+ testRunUuid = testRun.getUuid();
+ }
+
+ public List getExceptionStackLines() {
+ return exceptionStackLines;
+ }
+
+ public void setExceptionStackLines(List exceptionStackLines) {
+ this.exceptionStackLines = exceptionStackLines;
+ }
+
+ public void setExceptionMessage(String exceptionMessage) {
+ this.exceptionMessage = exceptionMessage;
+ }
+
}