Introduce test result attributes instead of root tags
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 29 Jun 2008 07:13:02 +0000 (07:13 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 29 Jun 2008 07:13:02 +0000 (07:13 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1320 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleTestResult.java
org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestResult.java
org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java
org.argeo.slc.core/src/main/java/org/argeo/slc/unit/process/SlcExecutionTestUtils.java
org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/TreeTestResultTestUtils.java
org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java
org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/mapping.xml
org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd

index c1d783a77618bfc7f9309d0dfc256393683a0a7f..748d14c0bd49b6e0ecb4e6967c2862b4ebaf783a 100644 (file)
@@ -2,6 +2,8 @@ package org.argeo.slc.core.test;
 \r
 import java.util.Date;\r
 import java.util.List;\r
+import java.util.Map;\r
+import java.util.TreeMap;\r
 import java.util.UUID;\r
 import java.util.Vector;\r
 \r
@@ -23,6 +25,8 @@ public class SimpleTestResult implements TestResult {
 \r
        private Date closeDate;\r
        private List<TestResultPart> parts = new Vector<TestResultPart>();\r
+       \r
+       private Map<String, String> attributes = new TreeMap<String, String>();\r
 \r
        public void addResultPart(TestResultPart part) {\r
                if (throwError && part.getStatus() == ERROR) {\r
@@ -71,4 +75,8 @@ public class SimpleTestResult implements TestResult {
                return currentTestRunUuid;\r
        }\r
 \r
+       public Map<String, String> getAttributes() {\r
+               return attributes;\r
+       }\r
+\r
 }\r
index 5aa1c619358adc5c252d70a11ef387028d9b8ac8..5de69700ce93ca919dab6cee9b7b4f8cd14c14e8 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.slc.core.test;\r
 \r
 import java.util.Date;\r
+import java.util.Map;\r
 \r
 /** The result of a test */\r
 public interface TestResult extends TestStatus, TestRunAware {\r
@@ -20,4 +21,7 @@ public interface TestResult extends TestStatus, TestRunAware {
         * result is not closed.\r
         */\r
        public Date getCloseDate();\r
+\r
+       /** Additional arbitrary meta data */\r
+       public Map<String, String> getAttributes();\r
 }\r
index ecd6cad52ac1921190d06a36a1f438bc41f59d60..5d680ff8e2399ccd25e90ef1c1042d8bfb044ebb 100644 (file)
@@ -34,8 +34,6 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
        private TreeSPath currentPath;\r
        private TestRun currentTestRun;\r
 \r
-       private Map<String, String> rootTags = new TreeMap<String, String>();\r
-\r
        private Date closeDate;\r
 \r
        private boolean isClosed = false;\r
@@ -45,6 +43,8 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
        private SortedMap<TreeSPath, PartSubList> resultParts = new TreeMap<TreeSPath, PartSubList>();\r
        private SortedMap<TreeSPath, StructureElement> elements = new TreeMap<TreeSPath, StructureElement>();\r
 \r
+       private Map<String, String> attributes = new TreeMap<String, String>();\r
+\r
        /** Sets the list of listeners. */\r
        public void setListeners(List<TestResultListener<TreeTestResult>> listeners) {\r
                this.listeners = listeners;\r
@@ -79,15 +79,6 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
                                if (!elements.containsKey(p)) {\r
                                        StructureElement elem = registry.getElement(p);\r
                                        if (elem != null) {\r
-\r
-                                               if (elements.size() == 0\r
-                                                               && (elem instanceof SimpleSElement)) {\r
-                                                       SimpleSElement sElem = ((SimpleSElement) elem)\r
-                                                                       .clone();\r
-                                                       sElem.getTags().putAll(rootTags);\r
-                                                       elem = sElem;\r
-                                               }\r
-\r
                                                elements.put(p, elem);\r
                                        }\r
                                } else {\r
@@ -199,12 +190,11 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
                }\r
        }\r
 \r
-       public Map<String, String> getRootTags() {\r
-               return rootTags;\r
+       public Map<String, String> getAttributes() {\r
+               return attributes;\r
        }\r
 \r
-       public void setRootTags(Map<String, String> rootTags) {\r
-               this.rootTags = rootTags;\r
+       public void setAttributes(Map<String, String> attributes) {\r
+               this.attributes = attributes;\r
        }\r
-\r
 }\r
index 1724f48dcd98d6b1c2fe0398c23ef3eed344ace7..67402d042635175219e48f3e4014167560c34541 100644 (file)
@@ -29,6 +29,8 @@ public abstract class SlcExecutionTestUtils {
                assertEquals(expected.getUser(), reached.getUser());\r
                assertEquals(expected.getType(), reached.getType());\r
                assertEquals(expected.getStatus(), reached.getStatus());\r
+               \r
+               // Attributes\r
                assertEquals(expected.getAttributes().size(), reached.getAttributes()\r
                                .size());\r
                for (String key : expected.getAttributes().keySet()) {\r
index 92e66bb02286a9752038a724d47e77b461936ee2..fedaa266a89975fa3af7b725f12e00b2249fc97e 100644 (file)
@@ -55,6 +55,9 @@ public abstract class TreeTestResultTestUtils {
                registry.register(path, elem);\r
 \r
                TreeTestResult ttr = createSimpleTreeTestResult();\r
+               ttr.getAttributes().put("testCase", "UNIT");\r
+\r
+               // Simulate test run\r
                ttr.notifyCurrentPath(registry, path);\r
                ttr.notifyTestRun(testRun);\r
                testRun.setTestResult(ttr);\r
index c34917b79dc759ac374781481f0b4b17546d0275..6d40120aa0447642d02670d4cdb57183ff1b9683 100644 (file)
@@ -25,6 +25,17 @@ public class UnitTestTreeUtil {
                assertEquals(expected.getUuid(), reached.getUuid());\r
                assertDateSec(expected.getCloseDate(), reached.getCloseDate());\r
 \r
+               // Attributes\r
+               assertEquals(expected.getAttributes().size(), reached.getAttributes()\r
+                               .size());\r
+               for (String key : expected.getAttributes().keySet()) {\r
+                       String expectedValue = expected.getAttributes().get(key);\r
+                       String reachedValue = reached.getAttributes().get(key);\r
+                       assertNotNull(reachedValue);\r
+                       assertEquals(expectedValue, reachedValue);\r
+               }\r
+\r
+               // Result parts\r
                assertEquals(expected.getResultParts().size(), reached.getResultParts()\r
                                .size());\r
                for (TreeSPath path : expected.getResultParts().keySet()) {\r
@@ -37,6 +48,7 @@ public class UnitTestTreeUtil {
                        assertPartSubList(lstExpected, lstReached);\r
                }\r
 \r
+               // Elements\r
                assertEquals(expected.getElements().size(), reached.getElements()\r
                                .size());\r
                for (TreeSPath path : expected.getElements().keySet()) {\r
index adfea8a9d4e7bab9b66b359c5d2365082b5eab4b..3d407e224518eafa7f78c6b2a7ad066b485a65e0 100644 (file)
                        <bind-xml name="uuid" node="attribute" />\r
                </field>\r
                <field name="closeDate" />\r
+               <field name="attributes" collection="map">
+                       <bind-xml name="attribute" location="attributes">
+                               <class name="org.exolab.castor.mapping.MapItem">
+                                       <map-to
+                                               ns-uri="http://argeo.org/projects/slc/schemas" ns-prefix="slc" />
+                                       <field name="key" type="string">
+                                               <bind-xml name="name" node="attribute" />
+                                       </field>
+                                       <field name="value" type="string">
+                                               <bind-xml node="text" />
+                                       </field>
+                               </class>
+                       </bind-xml>
+               </field>
                <field name="resultParts" collection="map">\r
                        <bind-xml name="result-part" location="result-parts">\r
                                <class name="org.exolab.castor.mapping.MapItem">\r
index b457f18f0ec0f3672ccf3fc593b41a48192eea8e..ba98a785ab3a5e0e440d670c91ea420c44b4e89a 100644 (file)
@@ -8,6 +8,8 @@
                <xs:all>\r
                        <xs:element name="close-date" type="xs:dateTime"\r
                                minOccurs="0" />\r
+                       <xs:element name="attributes" minOccurs="0"
+                               type="slc:AttributesType" />
                        <xs:element name="result-parts" minOccurs="0"\r
                                type="slc:ResultPartsType" />\r
                        <xs:element name="elements" minOccurs="0"\r