X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;h=96d0db046509e4ab5e356e85e309c7097ddf0545;hb=8c69c342c923aff75e3cc53afe390b767bb81e2e;hp=8da3e7d5a2dde3bd932a5175b592cbac6d3c77a8;hpb=d5d72139e7497923c2b8e2f4d25f366d01425498;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index 8da3e7d5a..96d0db046 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -10,9 +10,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.SlcException; -import org.argeo.slc.core.process.SlcExecution; -import org.argeo.slc.core.process.SlcExecutionAware; -import org.argeo.slc.core.process.SlcExecutionStep; import org.argeo.slc.core.structure.StructureAware; import org.argeo.slc.core.structure.StructureElement; import org.argeo.slc.core.structure.StructureRegistry; @@ -20,20 +17,21 @@ import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.TestResult; import org.argeo.slc.core.test.TestResultListener; import org.argeo.slc.core.test.TestResultPart; +import org.argeo.slc.core.test.TestRun; +import org.argeo.slc.core.test.TestRunAware; /** * Complex implementation of a test result compatible with a tree based * structure. */ public class TreeTestResult implements TestResult, StructureAware, - SlcExecutionAware { + Comparable { private Log log = LogFactory.getLog(TreeTestResult.class); - private List listeners = new Vector(); + private List> listeners = new Vector>(); private TreeSPath currentPath; - private String currentSlcExecutionUuid; - private String currentSlcExecutionStepUuid; + private TestRun currentTestRun; private Date closeDate; @@ -45,7 +43,7 @@ public class TreeTestResult implements TestResult, StructureAware, private SortedMap elements = new TreeMap(); /** Sets the list of listeners. */ - public void setListeners(List listeners) { + public void setListeners(List> listeners) { this.listeners = listeners; } @@ -56,15 +54,16 @@ public class TreeTestResult implements TestResult, StructureAware, PartSubList subList = resultParts.get(currentPath); if (subList == null) { subList = new PartSubList(); - subList.setSlcExecutionUuid(currentSlcExecutionUuid); - subList.setSlcExecutionStepUuid(currentSlcExecutionStepUuid); resultParts.put(currentPath, subList); } + if (part instanceof TestRunAware && currentTestRun != null) { + ((TestRunAware) part).notifyTestRun(currentTestRun); + } subList.getParts().add(part); // notify listeners synchronized (listeners) { - for (TestResultListener listener : listeners) { + for (TestResultListener listener : listeners) { listener.resultPartAdded(this, part); } } @@ -114,7 +113,7 @@ public class TreeTestResult implements TestResult, StructureAware, closeDate = new Date(); synchronized (listeners) { - for (TestResultListener listener : listeners) { + for (TestResultListener listener : listeners) { listener.close(this); } listeners.clear(); @@ -133,12 +132,8 @@ public class TreeTestResult implements TestResult, StructureAware, this.closeDate = closeDate; } - public void notifySlcExecution(SlcExecution slcExecution) { - currentSlcExecutionUuid = slcExecution.getUuid(); - SlcExecutionStep step = slcExecution.currentStep(); - if (step != null) { - currentSlcExecutionStepUuid = step.getUuid(); - } + public void notifyTestRun(TestRun testRun) { + currentTestRun = testRun; } public SortedMap getElements() { @@ -157,4 +152,33 @@ public class TreeTestResult implements TestResult, StructureAware, this.uuid = uuid; } + public SortedMap getRelatedElements( + TreeSPath path) { + SortedMap relatedElements = new TreeMap(); + List hierarchy = path.getHierarchyAsList(); + for (TreeSPath currPath : elements.keySet()) { + if (hierarchy.contains(currPath)) { + relatedElements.put(currPath, elements.get(currPath)); + } + } + return relatedElements; + } + + public TestRun getCurrentTestRun() { + return currentTestRun; + } + + public int compareTo(TreeTestResult ttr2) { + TreeTestResult ttr1 = this; + if (ttr1.getCloseDate() != null && ttr2.getCloseDate() != null) { + return -ttr1.getCloseDate().compareTo(ttr2.getCloseDate()); + } else if (ttr1.getCloseDate() != null && ttr2.getCloseDate() == null) { + return 1; + } else if (ttr1.getCloseDate() == null && ttr2.getCloseDate() != null) { + return -1; + } else { + return ttr1.getUuid().compareTo(ttr2.getUuid()); + } + } + }