package org.argeo.slc.unit.test.tree;\r
\r
-import junit.framework.TestCase;\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
\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
+ 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
+ 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
+ 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
+ /** 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
+ 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, 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.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, String exceptionDescription,\r
+ String expectedTestRunUuid, boolean skipExceptionMessage) {\r
+ assertEquals(status, part.getStatus());\r
+\r
+ if (log.isTraceEnabled()) {\r
+ log.trace("Expected message:" + message);\r
+ log.trace("Reached message:" + part.getMessage());\r
+ }\r
+ assertEquals(message, part.getMessage());\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
+ if (part instanceof SimpleResultPart) {\r
+ assertNull(((SimpleResultPart) part).getTestRunUuid());\r
+ }\r
+\r
+ }\r
+\r
}\r
\r
/** Makes sure this is a singleton */\r