]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java
Prepare for release candidate
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / unit / test / tree / UnitTestTreeUtil.java
index 237811ebee583ba94331d3df018e2d81c170aeb7..62b4f82263a53b37db5a48ea131e47c691da3e3b 100644 (file)
@@ -6,6 +6,8 @@ import static junit.framework.Assert.assertNull;
 import static junit.framework.Assert.fail;\r
 import static org.argeo.slc.unit.UnitUtils.assertDateSec;\r
 \r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
 import org.argeo.slc.core.structure.SimpleSElement;\r
 import org.argeo.slc.core.structure.tree.TreeSPath;\r
 import org.argeo.slc.core.test.SimpleResultPart;\r
@@ -15,11 +17,24 @@ import org.argeo.slc.core.test.tree.TreeTestResult;
 \r
 /** Utilities for unit tests. */\r
 public class UnitTestTreeUtil {\r
+       private final static Log log = LogFactory.getLog(UnitTestTreeUtil.class);\r
+\r
        public static void assertTreeTestResult(TreeTestResult expected,\r
                        TreeTestResult reached) {\r
                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
@@ -32,6 +47,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
@@ -61,20 +77,6 @@ public class UnitTestTreeUtil {
 \r
        public static void assertPartSubList(PartSubList lstExpected,\r
                        PartSubList lstReached) {\r
-               if (lstExpected.getSlcExecutionUuid() == null) {\r
-                       assertNull(lstReached.getSlcExecutionUuid());\r
-               } else {\r
-                       assertEquals(lstExpected.getSlcExecutionUuid(), lstReached\r
-                                       .getSlcExecutionUuid());\r
-               }\r
-\r
-               if (lstExpected.getSlcExecutionStepUuid() == null) {\r
-                       assertNull(lstReached.getSlcExecutionStepUuid());\r
-               } else {\r
-                       assertEquals(lstExpected.getSlcExecutionStepUuid(), lstReached\r
-                                       .getSlcExecutionStepUuid());\r
-               }\r
-\r
                assertEquals(lstExpected.getParts().size(), lstReached.getParts()\r
                                .size());\r
                for (int i = 0; i < lstExpected.getParts().size(); i++) {\r
@@ -83,15 +85,10 @@ public class UnitTestTreeUtil {
                }\r
        }\r
 \r
-       /**\r
-        * Assert one part of a tree test result.\r
-        * \r
-        * @deprecated use {@link #assertPart(TestResultPart, TestResultPart)}\r
-        *             instead\r
-        */\r
+       /** Asserts one part of a tree test result */\r
        public static void assertPart(TreeTestResult testResult, String pathStr,\r
                        int index, Integer status, String message) {\r
-               TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
+               TreeSPath path = new TreeSPath(pathStr);\r
                PartSubList list = testResult.getResultParts().get(path);\r
                if (list == null) {\r
                        fail("No result for path " + path);\r
@@ -101,25 +98,86 @@ public class UnitTestTreeUtil {
                        fail("Not enough parts.");\r
                }\r
                SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
-               assertPart(part, status, message, null);\r
+               assertPart(part, status, message, null, part.getTestRunUuid(), true);\r
        }\r
 \r
        public static void assertPart(TestResultPart expected,\r
                        TestResultPart reached) {\r
+               String expectedTestRunUuid = null;\r
+               if (expected instanceof SimpleResultPart) {\r
+                       expectedTestRunUuid = ((SimpleResultPart) expected)\r
+                                       .getTestRunUuid();\r
+               }\r
+\r
                assertPart(reached, expected.getStatus(), expected.getMessage(),\r
-                               expected.getException());\r
+                               expected.getExceptionMessage(), expectedTestRunUuid, false);\r
        }\r
 \r
        /** Assert one part of a tree test result. */\r
        private static void assertPart(TestResultPart part, Integer status,\r
-                       String message, Exception exception) {\r
+                       String message, String exceptionDescription,\r
+                       String expectedTestRunUuid, boolean skipExceptionMessage) {\r
                assertEquals(status, part.getStatus());\r
-               assertEquals(message, part.getMessage());\r
-               if (exception == null) {\r
-                       assertNull(part.getException());\r
+\r
+               if (message != null) {\r
+                       if (log.isTraceEnabled()) {\r
+                               log.trace("Expected message:" + message);\r
+                               log.trace("Reached message:" + part.getMessage());\r
+                       }\r
+                       assertEquals(message, part.getMessage());\r
+               }\r
+\r
+               if (!skipExceptionMessage) {\r
+                       if (exceptionDescription == null) {\r
+                               assertNull(part.getExceptionMessage());\r
+                       } else {\r
+                               if (log.isTraceEnabled()) {\r
+                                       log.trace("Expected exception message:"\r
+                                                       + exceptionDescription);\r
+                                       log.trace("Reached exception message:"\r
+                                                       + part.getExceptionMessage());\r
+                               }\r
+\r
+                               assertEquals(exceptionDescription, part.getExceptionMessage());\r
+                       }\r
+               }\r
+\r
+               if (expectedTestRunUuid != null) {\r
+                       SimpleResultPart reachedPart = (SimpleResultPart) part;\r
+                       assertNotNull(reachedPart.getTestRunUuid());\r
+                       assertEquals(expectedTestRunUuid, reachedPart.getTestRunUuid());\r
                } else {\r
-                       assertEquals(exception, part.getException());\r
+                       if (part instanceof SimpleResultPart) {\r
+                               assertNull(((SimpleResultPart) part).getTestRunUuid());\r
+                       }\r
+\r
                }\r
+\r
+       }\r
+\r
+       public static void describeTreeTestResult(TreeTestResult ttr) {\r
+               log.info("TreeTestResult #" + ttr.getUuid());\r
+               log.info(" Close date: " + ttr.getCloseDate());\r
+               log.info(" Attributes:");\r
+               for (String key : ttr.getAttributes().keySet())\r
+                       log.info("  " + key + "=" + ttr.getAttributes().get(key));\r
+\r
+               log.info(" Result parts: (size=" + ttr.getResultParts().size() + ")");\r
+               for (TreeSPath path : ttr.getResultParts().keySet()) {\r
+                       log.info(" Path: " + path);\r
+                       PartSubList lst = ttr.getResultParts().get(path);\r
+                       for (TestResultPart part : lst.getParts())\r
+                               log.info("  " + part);\r
+               }\r
+\r
+               log.info(" Elements: (size=" + ttr.getElements().size() + ")");\r
+               for (TreeSPath path : ttr.getElements().keySet()) {\r
+                       SimpleSElement elem = (SimpleSElement) ttr.getElements().get(path);\r
+                       log.info(" Path: " + path + ", Element: " + elem.getLabel());\r
+                       for (String tag : elem.getTags().keySet())\r
+                               log.info("  " + tag + "=" + elem.getTags().get(tag));\r
+               }\r
+\r
        }\r
 \r
        /** Makes sure this is a singleton */\r