summaryrefslogtreecommitdiff
path: root/contrib/testng/src/mill/testng/ResultEvent.java
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/testng/src/mill/testng/ResultEvent.java')
-rw-r--r--contrib/testng/src/mill/testng/ResultEvent.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/contrib/testng/src/mill/testng/ResultEvent.java b/contrib/testng/src/mill/testng/ResultEvent.java
new file mode 100644
index 00000000..6e2a50d6
--- /dev/null
+++ b/contrib/testng/src/mill/testng/ResultEvent.java
@@ -0,0 +1,45 @@
+
+package mill.testng;
+
+import sbt.testing.*;
+import org.testng.ITestResult;
+
+public class ResultEvent {
+ static Event failure(ITestResult result){ return event(Status.Failure, result); }
+ static Event skipped(ITestResult result){ return event(Status.Skipped, result); }
+ static Event success(ITestResult result){ return event(Status.Success, result); }
+
+ static Event event(Status result, ITestResult testNGResult) {
+ return new Event() {
+ public String fullyQualifiedName() {
+ return testNGResult.getTestClass().getName();
+ }
+
+ public Fingerprint fingerprint() {
+ return TestNGFingerprint.instance;
+ }
+
+ public Selector selector() {
+ return new SuiteSelector();
+ }
+
+ public Status status() {
+ return result;
+ }
+
+ public OptionalThrowable throwable() {
+ if (result != Status.Success){
+ return new OptionalThrowable(testNGResult.getThrowable());
+ }else {
+ return new OptionalThrowable();
+ }
+ }
+
+ @Override
+ public long duration() {
+ return testNGResult.getEndMillis() - testNGResult.getStartMillis();
+ }
+ };
+ }
+ static String classNameOf(ITestResult result){ return result.getTestClass().getName(); }
+} \ No newline at end of file