]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java
Replace test result id by UUID
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / unit / test / tree / UnitTestTreeUtil.java
index 5024df1186be3e5c9ec459f5186c07fef864e6c1..237811ebee583ba94331d3df018e2d81c170aeb7 100644 (file)
 package org.argeo.slc.unit.test.tree;\r
 \r
-import junit.framework.TestCase;\r
+import static junit.framework.Assert.assertEquals;\r
+import static junit.framework.Assert.assertNotNull;\r
+import static junit.framework.Assert.assertNull;\r
+import static junit.framework.Assert.fail;\r
+import static org.argeo.slc.unit.UnitUtils.assertDateSec;\r
 \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
+import org.argeo.slc.core.test.TestResultPart;\r
 import org.argeo.slc.core.test.tree.PartSubList;\r
 import org.argeo.slc.core.test.tree.TreeTestResult;\r
 \r
 /** Utilities for unit tests. */\r
 public class UnitTestTreeUtil {\r
-       /** Assert one part of a tree test result. */\r
+       public static void assertTreeTestResult(TreeTestResult expected,\r
+                       TreeTestResult reached) {\r
+               assertEquals(expected.getUuid(), reached.getUuid());\r
+               assertDateSec(expected.getCloseDate(), reached.getCloseDate());\r
+\r
+               assertEquals(expected.getResultParts().size(), reached.getResultParts()\r
+                               .size());\r
+               for (TreeSPath path : expected.getResultParts().keySet()) {\r
+                       PartSubList lstExpected = expected.getResultParts().get(path);\r
+                       PartSubList lstReached = expected.getResultParts().get(path);\r
+                       if (lstReached == null) {\r
+                               fail("No result for path " + path);\r
+                               return;\r
+                       }\r
+                       assertPartSubList(lstExpected, lstReached);\r
+               }\r
+\r
+               assertEquals(expected.getElements().size(), reached.getElements()\r
+                               .size());\r
+               for (TreeSPath path : expected.getElements().keySet()) {\r
+                       // String nameExpected = expected.getElements().get(path);\r
+                       // String nameReached = expected.getElements().get(path);\r
+                       SimpleSElement elemExpected = (SimpleSElement) expected\r
+                                       .getElements().get(path);\r
+                       SimpleSElement elemReached = (SimpleSElement) expected\r
+                                       .getElements().get(path);\r
+                       assertNotNull(elemReached);\r
+                       assertElements(elemExpected, elemReached);\r
+               }\r
+\r
+       }\r
+\r
+       public static void assertElements(SimpleSElement expected,\r
+                       SimpleSElement reached) {\r
+               assertEquals(expected.getLabel(), reached.getLabel());\r
+               assertEquals(expected.getTags().size(), reached.getTags().size());\r
+               for (String tagName : expected.getTags().keySet()) {\r
+                       String expectedTagValue = expected.getTags().get(tagName);\r
+                       String reachedTagValue = reached.getTags().get(tagName);\r
+                       assertNotNull(reachedTagValue);\r
+                       assertEquals(expectedTagValue, reachedTagValue);\r
+               }\r
+       }\r
+\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
+                       assertPart(lstExpected.getParts().get(i), lstReached.getParts()\r
+                                       .get(i));\r
+               }\r
+       }\r
+\r
+       /**\r
+        * Assert one part of a tree test result.\r
+        * \r
+        * @deprecated use {@link #assertPart(TestResultPart, TestResultPart)}\r
+        *             instead\r
+        */\r
        public static void assertPart(TreeTestResult testResult, String pathStr,\r
                        int index, Integer status, String message) {\r
                TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
                PartSubList list = testResult.getResultParts().get(path);\r
                if (list == null) {\r
-                       TestCase.fail("No result for path " + path);\r
+                       fail("No result for path " + path);\r
                        return;\r
                }\r
+               if (index >= list.getParts().size()) {\r
+                       fail("Not enough parts.");\r
+               }\r
                SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
-               TestCase.assertEquals(status, part.getStatus());\r
-               TestCase.assertEquals(message, part.getMessage());\r
+               assertPart(part, status, message, null);\r
+       }\r
+\r
+       public static void assertPart(TestResultPart expected,\r
+                       TestResultPart reached) {\r
+               assertPart(reached, expected.getStatus(), expected.getMessage(),\r
+                               expected.getException());\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
+               assertEquals(status, part.getStatus());\r
+               assertEquals(message, part.getMessage());\r
+               if (exception == null) {\r
+                       assertNull(part.getException());\r
+               } else {\r
+                       assertEquals(exception, part.getException());\r
+               }\r
        }\r
 \r
        /** Makes sure this is a singleton */\r