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; + } + }