+++ /dev/null
-package org.argeo.slc.unit.test.tree;\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.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
-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
- 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
- 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
- // Elements\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 = 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
- 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 (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
- 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
- private UnitTestTreeUtil() {\r
-\r
- }\r
-}\r