]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultLogger.java
Introduce org.argeo.slc.support.simple
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.simple / src / main / java / org / argeo / slc / core / test / tree / TreeTestResultLogger.java
diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultLogger.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultLogger.java
new file mode 100644 (file)
index 0000000..535abe6
--- /dev/null
@@ -0,0 +1,52 @@
+package org.argeo.slc.core.test.tree;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import org.argeo.slc.core.test.TestResultListener;\r
+import org.argeo.slc.core.test.TestResultPart;\r
+import org.argeo.slc.core.test.TestStatus;\r
+\r
+/**\r
+ * Listener logging tree-based test results to the underlying logging system.\r
+ * \r
+ * @see TreeTestResult\r
+ * \r
+ */\r
+public class TreeTestResultLogger implements TestResultListener<TreeTestResult> {\r
+\r
+       private static Log log = LogFactory.getLog(TreeTestResultLogger.class);\r
+\r
+       private Boolean logExceptionMessages = false;\r
+\r
+       public void resultPartAdded(TreeTestResult testResult,\r
+                       TestResultPart testResultPart) {\r
+               String msg = testResultPart + " - " + testResult.getUuid() + ":"\r
+                               + testResult.getCurrentPath();\r
+               if (testResultPart.getStatus().equals(TestStatus.PASSED)) {\r
+                       log.info(msg);\r
+               } else if (testResultPart.getStatus().equals(TestStatus.FAILED)) {\r
+                       log.warn(msg);\r
+               } else if (testResultPart.getStatus().equals(TestStatus.ERROR)) {\r
+                       if (logExceptionMessages)\r
+                               msg = msg + "\n" + testResultPart.getExceptionMessage();\r
+\r
+                       log.error(msg);\r
+\r
+                       if (!logExceptionMessages || log.isDebugEnabled())\r
+                               log.debug(testResultPart.getExceptionMessage());\r
+\r
+               } else {\r
+                       log.error("Unknow test status: " + msg);\r
+               }\r
+       }\r
+\r
+       public void close(TreeTestResult testResult) {\r
+               log.info("Test result " + testResult.getUuid() + " closed.");\r
+       }\r
+\r
+       public void setLogExceptionMessages(Boolean logExceptionMessages) {\r
+               this.logExceptionMessages = logExceptionMessages;\r
+       }\r
+\r
+}\r