]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
Split org.argeo.slc.core
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.simple / src / main / java / org / argeo / slc / core / test / SimpleResultPart.java
1 package org.argeo.slc.core.test;
2
3 /**
4 * <p>
5 * Basic implementation of a result part, implementing the standard three status
6 * approach for test results.
7 * </p>
8 *
9 * @see TestStatus
10 */
11 public class SimpleResultPart implements TestResultPart, TestStatus,
12 TestRunAware {
13
14 private Long tid;
15
16 private String testRunUuid;
17
18 /** The status. Default to ERROR since it should always be explicitely set. */
19 private Integer status = ERROR;
20 private String message;
21 private String exceptionMessage;
22
23 public SimpleResultPart() {
24 }
25
26 public SimpleResultPart(Integer status, String message) {
27 this(status, message, null);
28 }
29
30 public SimpleResultPart(Integer status, String message, Exception exception) {
31 this.status = status;
32 this.message = message;
33 setException(exception);
34 }
35
36 public String getMessage() {
37 return message;
38 }
39
40 public void setMessage(String message) {
41 this.message = message;
42 }
43
44 public void setStatus(Integer status) {
45 this.status = status;
46 }
47
48 public Integer getStatus() {
49 return status;
50 }
51
52 public String getExceptionMessage() {
53 return exceptionMessage;
54 }
55
56 public void setException(Exception exception) {
57 if (exception == null)
58 return;
59
60 StringBuffer buf = new StringBuffer("");
61 buf.append(exception.toString());
62 buf.append('\n');
63 for (StackTraceElement elem : exception.getStackTrace()) {
64 buf.append('\t').append(elem.toString()).append('\n');
65 }
66
67 if (exception.getCause() != null)
68 addRootCause(buf, exception.getCause());
69
70 this.exceptionMessage = buf.toString();
71 }
72
73 protected void addRootCause(StringBuffer buf, Throwable cause) {
74 if (cause == null)
75 return;
76
77 buf.append("Caused by: " + cause.getMessage());
78 for (StackTraceElement elem : cause.getStackTrace()) {
79 buf.append('\t').append(elem.toString()).append('\n');
80 }
81
82 if (cause.getCause() != null) {
83 addRootCause(buf, cause.getCause());
84 }
85 }
86
87 @Override
88 public String toString() {
89 StringBuffer buf = new StringBuffer("");
90 buf.append(SlcTestUtils.statusToString(status));
91 if (status == PASSED || status == FAILED) {
92 buf.append(' ');
93 } else if (status == ERROR) {
94 buf.append(" ");
95 }
96 buf.append(message);
97 return buf.toString();
98 }
99
100 /** @deprecated */
101 Long getTid() {
102 return tid;
103 }
104
105 /** @deprecated */
106 void setTid(Long tid) {
107 this.tid = tid;
108 }
109
110 public String getTestRunUuid() {
111 return testRunUuid;
112 }
113
114 /** For ORM */
115 public void setTestRunUuid(String testRunUuid) {
116 this.testRunUuid = testRunUuid;
117 }
118
119 public void notifyTestRun(TestRun testRun) {
120 testRunUuid = testRun.getUuid();
121 }
122
123 public void setExceptionMessage(String exceptionMessage) {
124 this.exceptionMessage = exceptionMessage;
125 }
126
127 }