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.getTestResultId(), reached.getTestResultId());\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