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=249fd2149f58a93cd43aa1a4f56ee161e9e71fd8;hpb=faf680e212bf3e18837c4f798587856e061273b3;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 249fd2149..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,14 +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 Integer status;
+ private String testRunUuid;
+
+ /** The status. Default to ERROR since it should always be explicitely set. */
+ private Integer status = ERROR;
private String message;
- private Throwable exception;
+ private String exceptionMessage;
+ private List exceptionStackLines = new Vector();
public SimpleResultPart() {
}
@@ -24,10 +38,10 @@ public class SimpleResultPart implements TestResultPart, TestStatus {
this(status, message, null);
}
- public SimpleResultPart(Integer status, String message, Throwable exception) {
+ public SimpleResultPart(Integer status, String message, Exception exception) {
this.status = status;
this.message = message;
- this.exception = exception;
+ setException(exception);
}
public String getMessage() {
@@ -46,37 +60,77 @@ public class SimpleResultPart implements TestResultPart, TestStatus {
return status;
}
- public Throwable getException() {
- return exception;
+ public String getExceptionMessage() {
+ return exceptionMessage;
}
- public void setException(Throwable exception) {
- this.exception = exception;
+ public void setException(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
public String toString() {
StringBuffer buf = new StringBuffer("");
- if (status == PASSED) {
- buf.append("PASSED ");
- } else if (status == FAILED) {
- buf.append("FAILED ");
+ buf.append(SlcTestUtils.statusToString(status));
+ if (status == PASSED || status == FAILED) {
+ buf.append(' ');
} else if (status == ERROR) {
- buf.append("ERROR ");
+ 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;
+ }
+
}