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=f34561a9e3b33881d2bd9c425f2d7990b2795132;hb=7ffec52c590ce511b476f55be4ad123418268aa0;hp=a012c4451b065a3e26926f710d4712cd5dc04068;hpb=e705b3804cd22f56dec2ca69db3de83a53ab010a;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 a012c4451..f34561a9e 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 @@ -2,6 +2,7 @@ package org.argeo.slc.core.test.tree; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; import java.util.Vector; @@ -10,6 +11,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.SlcException; +import org.argeo.slc.core.structure.SimpleSElement; import org.argeo.slc.core.structure.StructureAware; import org.argeo.slc.core.structure.StructureElement; import org.argeo.slc.core.structure.StructureRegistry; @@ -24,7 +26,8 @@ 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 { +public class TreeTestResult implements TestResult, StructureAware, + Comparable { private Log log = LogFactory.getLog(TreeTestResult.class); private List> listeners = new Vector>(); @@ -32,6 +35,8 @@ public class TreeTestResult implements TestResult, StructureAware { private TreeSPath currentPath; private TestRun currentTestRun; + private Map rootTags = new TreeMap(); + private Date closeDate; private boolean isClosed = false; @@ -75,6 +80,15 @@ public class TreeTestResult implements TestResult, StructureAware { if (!elements.containsKey(p)) { StructureElement elem = registry.getElement(p); if (elem != null) { + + if (elements.size() == 0 + && (elem instanceof SimpleSElement)) { + SimpleSElement sElem = ((SimpleSElement) elem) + .clone(); + sElem.getTags().putAll(rootTags); + elem = sElem; + } + elements.put(p, elem); } } else { @@ -119,7 +133,8 @@ public class TreeTestResult implements TestResult, StructureAware { } isClosed = true; - log.info("Test Result #" + getUuid() + " closed."); + if (log.isTraceEnabled()) + log.trace("Test Result " + getUuid() + " closed."); } public Date getCloseDate() { @@ -167,4 +182,25 @@ public class TreeTestResult implements TestResult, StructureAware { 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()); + } + } + + public Map getRootTags() { + return rootTags; + } + + public void setRootTags(Map rootTags) { + this.rootTags = rootTags; + } + }