From a3c4f3ed48e24873461daca126a69530cf53ae14 Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Fri, 27 Oct 2023 23:27:47 +0200
Subject: [PATCH] BREAKING: added competency assessment result fields

---
 Dockerfile                                    | 32 +++++++++----------
 .../java/de/hftstuttgart/dta/Testrunner.java  | 12 +++++--
 .../de/hftstuttgart/dta/model/Result.java     |  2 ++
 .../hftstuttgart/dta/model/ResultSummary.java |  2 ++
 4 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 7733b95..a7ece2a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,25 +1,25 @@
 FROM amazoncorretto:17.0.3-alpine as corretto-jdk
 
-env BASEDIR /data
-env TESTDIR $BASEDIR/test
-env SOURCEDIR $BASEDIR/src
-env RESULTDIR $BASEDIR/result
-env LIBSDIR $BASEDIR/libs
+ENV BASEDIR /data
+ENV TESTDIR $BASEDIR/test
+ENV SOURCEDIR $BASEDIR/src
+ENV RESULTDIR $BASEDIR/result
+ENV LIBSDIR $BASEDIR/libs
 
-run mkdir -p $TESTDIR \
+RUN mkdir -p $TESTDIR \
     && mkdir $SOURCEDIR \
     && mkdir $RESULTDIR \
     && mkdir -p /$LIBSDIR/additional
 
-add target/dta-jdk17-junit5-runner-jar-with-dependencies.jar /$BASEDIR/app.jar
-add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.10.0/junit-platform-launcher-1.10.0.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.1/apiguardian-api-1.1.1.jar /$LIBSDIR/
-add https://repo1.maven.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar /$LIBSDIR/
+ADD target/dta-jdk17-junit5-runner-jar-with-dependencies.jar /$BASEDIR/app.jar
+ADD https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.10.0/junit-platform-launcher-1.10.0.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.1/apiguardian-api-1.1.1.jar /$LIBSDIR/
+ADD https://repo1.maven.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar /$LIBSDIR/
 
-workdir $BASEDIR
+WORKDIR $BASEDIR
 
-entrypoint java -Djava.security.egd=file:/dev/./urandom -jar /$BASEDIR/app.jar "$SOURCEDIR/src:$TESTDIR/test" "$LIBSDIR/*:$TESTDIR/libs/*" $RESULTDIR
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /$BASEDIR/app.jar "$SOURCEDIR/src:$TESTDIR/test" "$LIBSDIR/*:$TESTDIR/libs/*" $RESULTDIR
diff --git a/src/main/java/de/hftstuttgart/dta/Testrunner.java b/src/main/java/de/hftstuttgart/dta/Testrunner.java
index d7503d7..031fd9c 100644
--- a/src/main/java/de/hftstuttgart/dta/Testrunner.java
+++ b/src/main/java/de/hftstuttgart/dta/Testrunner.java
@@ -34,8 +34,8 @@ import java.util.*;
 import java.util.logging.Level;
 import java.util.logging.LogManager;
 import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+//import java.util.regex.Matcher;
+//import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -220,7 +220,9 @@ public class Testrunner
 //
 //            result.name = (matcher.matches() && matcher.group(1) != null) ? matcher.group(1) : String.valueOf(e.getSource());
             String sourcePath=String.valueOf(e.getSource());
-            result.name=sourcePath.substring(sourcePath.lastIndexOf(File.separator)+1, sourcePath.length()-1);
+            result.packageName=sourcePath.substring(sourcePath.lastIndexOf(File.separator)-1);
+            result.className=sourcePath.substring(sourcePath.lastIndexOf(File.separator)+1, sourcePath.length()-1);
+            result.name=result.className;
             result.state = Result.State.COMPILATIONERROR.ordinal();
             result.failureReason = e.getMessage(Locale.ENGLISH);
             result.failureType = "Compilation Failed";
@@ -254,6 +256,8 @@ public class Testrunner
         resultSummary.results.addAll(successes.stream().map(s ->
         {
             Result result = new Result();
+            result.packageName=s.getClass().getPackageName();
+            result.className=s.getClass().getName();
             result.name = s.getDisplayName();
             result.state = Result.State.SUCCESS.ordinal();
 
@@ -264,6 +268,8 @@ public class Testrunner
         resultSummary.results.addAll(summary.getFailures().stream().map(f ->
         {
             Result result = new Result();
+            result.packageName=f.getTestIdentifier().getClass().getPackageName();
+            result.className=f.getTestIdentifier().getClass().getName();
             result.name = f.getTestIdentifier().getDisplayName();
             result.state = Result.State.FAILURE.ordinal();
 
diff --git a/src/main/java/de/hftstuttgart/dta/model/Result.java b/src/main/java/de/hftstuttgart/dta/model/Result.java
index 8432c66..34345f0 100644
--- a/src/main/java/de/hftstuttgart/dta/model/Result.java
+++ b/src/main/java/de/hftstuttgart/dta/model/Result.java
@@ -2,6 +2,8 @@ package de.hftstuttgart.dta.model;
 
 public class Result
 {
+	public String packageName;
+	public String className;
     public String name;
     public int state;
 
diff --git a/src/main/java/de/hftstuttgart/dta/model/ResultSummary.java b/src/main/java/de/hftstuttgart/dta/model/ResultSummary.java
index 295af95..e583390 100644
--- a/src/main/java/de/hftstuttgart/dta/model/ResultSummary.java
+++ b/src/main/java/de/hftstuttgart/dta/model/ResultSummary.java
@@ -7,5 +7,7 @@ public class ResultSummary
 {
     public long timestamp               = System.currentTimeMillis() / 1000;
     public String globalStacktrace      = null;
+    public float[] successfulTestCompetencyProfile;
+    public float[] overallTestCompetencyProfile;
     public Set<Result> results   = new HashSet<>();
 }
-- 
GitLab