X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Funit%2Ftest%2Ftree%2FUnitTestTreeUtil.java;h=62b4f82263a53b37db5a48ea131e47c691da3e3b;hb=4033929515e7799742bf5e48b37f5a1e94c0e1c2;hp=4f07231d518fe3f8b3198daa219f845b66503377;hpb=92dec409c3cd491dcd8f706f4e17613ba64b4077;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java index 4f07231d5..62b4f8226 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java @@ -1,9 +1,14 @@ package org.argeo.slc.unit.test.tree; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.fail; +import static org.argeo.slc.unit.UnitUtils.assertDateSec; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.slc.core.structure.SimpleSElement; import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.SimpleResultPart; import org.argeo.slc.core.test.TestResultPart; @@ -12,11 +17,24 @@ import org.argeo.slc.core.test.tree.TreeTestResult; /** Utilities for unit tests. */ public class UnitTestTreeUtil { + private final static Log log = LogFactory.getLog(UnitTestTreeUtil.class); + public static void assertTreeTestResult(TreeTestResult expected, TreeTestResult reached) { - assertEquals(expected.getTestResultId(), reached.getTestResultId()); - assertEquals(expected.getCloseDate(), reached.getCloseDate()); + assertEquals(expected.getUuid(), reached.getUuid()); + assertDateSec(expected.getCloseDate(), reached.getCloseDate()); + // Attributes + assertEquals(expected.getAttributes().size(), reached.getAttributes() + .size()); + for (String key : expected.getAttributes().keySet()) { + String expectedValue = expected.getAttributes().get(key); + String reachedValue = reached.getAttributes().get(key); + assertNotNull(reachedValue); + assertEquals(expectedValue, reachedValue); + } + + // Result parts assertEquals(expected.getResultParts().size(), reached.getResultParts() .size()); for (TreeSPath path : expected.getResultParts().keySet()) { @@ -28,24 +46,37 @@ public class UnitTestTreeUtil { } assertPartSubList(lstExpected, lstReached); } - } - public static void assertPartSubList(PartSubList lstExpected, - PartSubList lstReached) { - if (lstExpected.getSlcExecutionUuid() == null) { - assertNull(lstReached.getSlcExecutionUuid()); - } else { - assertEquals(lstExpected.getSlcExecutionUuid(), lstReached - .getSlcExecutionUuid()); + // Elements + assertEquals(expected.getElements().size(), reached.getElements() + .size()); + for (TreeSPath path : expected.getElements().keySet()) { + // String nameExpected = expected.getElements().get(path); + // String nameReached = expected.getElements().get(path); + SimpleSElement elemExpected = (SimpleSElement) expected + .getElements().get(path); + SimpleSElement elemReached = (SimpleSElement) expected + .getElements().get(path); + assertNotNull(elemReached); + assertElements(elemExpected, elemReached); } - if (lstExpected.getSlcExecutionStepUuid() == null) { - assertNull(lstReached.getSlcExecutionStepUuid()); - } else { - assertEquals(lstExpected.getSlcExecutionStepUuid(), lstReached - .getSlcExecutionStepUuid()); + } + + public static void assertElements(SimpleSElement expected, + SimpleSElement reached) { + assertEquals(expected.getLabel(), reached.getLabel()); + assertEquals(expected.getTags().size(), reached.getTags().size()); + for (String tagName : expected.getTags().keySet()) { + String expectedTagValue = expected.getTags().get(tagName); + String reachedTagValue = reached.getTags().get(tagName); + assertNotNull(reachedTagValue); + assertEquals(expectedTagValue, reachedTagValue); } + } + public static void assertPartSubList(PartSubList lstExpected, + PartSubList lstReached) { assertEquals(lstExpected.getParts().size(), lstReached.getParts() .size()); for (int i = 0; i < lstExpected.getParts().size(); i++) { @@ -54,15 +85,10 @@ public class UnitTestTreeUtil { } } - /** - * Assert one part of a tree test result. - * - * @deprecated use {@link #assertPart(TestResultPart, TestResultPart)} - * instead - */ + /** Asserts one part of a tree test result */ public static void assertPart(TreeTestResult testResult, String pathStr, int index, Integer status, String message) { - TreeSPath path = TreeSPath.parseToCreatePath(pathStr); + TreeSPath path = new TreeSPath(pathStr); PartSubList list = testResult.getResultParts().get(path); if (list == null) { fail("No result for path " + path); @@ -72,25 +98,86 @@ public class UnitTestTreeUtil { fail("Not enough parts."); } SimpleResultPart part = (SimpleResultPart) list.getParts().get(index); - assertPart(part, status, message, null); + assertPart(part, status, message, null, part.getTestRunUuid(), true); } public static void assertPart(TestResultPart expected, TestResultPart reached) { + String expectedTestRunUuid = null; + if (expected instanceof SimpleResultPart) { + expectedTestRunUuid = ((SimpleResultPart) expected) + .getTestRunUuid(); + } + assertPart(reached, expected.getStatus(), expected.getMessage(), - expected.getException()); + expected.getExceptionMessage(), expectedTestRunUuid, false); } /** Assert one part of a tree test result. */ private static void assertPart(TestResultPart part, Integer status, - String message, Exception exception) { + String message, String exceptionDescription, + String expectedTestRunUuid, boolean skipExceptionMessage) { assertEquals(status, part.getStatus()); - assertEquals(message, part.getMessage()); - if (exception == null) { - assertNull(part.getException()); + + if (message != null) { + if (log.isTraceEnabled()) { + log.trace("Expected message:" + message); + log.trace("Reached message:" + part.getMessage()); + } + assertEquals(message, part.getMessage()); + } + + if (!skipExceptionMessage) { + if (exceptionDescription == null) { + assertNull(part.getExceptionMessage()); + } else { + if (log.isTraceEnabled()) { + log.trace("Expected exception message:" + + exceptionDescription); + log.trace("Reached exception message:" + + part.getExceptionMessage()); + } + + assertEquals(exceptionDescription, part.getExceptionMessage()); + } + } + + if (expectedTestRunUuid != null) { + SimpleResultPart reachedPart = (SimpleResultPart) part; + assertNotNull(reachedPart.getTestRunUuid()); + assertEquals(expectedTestRunUuid, reachedPart.getTestRunUuid()); } else { - assertEquals(exception, part.getException()); + if (part instanceof SimpleResultPart) { + assertNull(((SimpleResultPart) part).getTestRunUuid()); + } + } + + } + + public static void describeTreeTestResult(TreeTestResult ttr) { + log.info("TreeTestResult #" + ttr.getUuid()); + log.info(" Close date: " + ttr.getCloseDate()); + log.info(" Attributes:"); + for (String key : ttr.getAttributes().keySet()) + log.info(" " + key + "=" + ttr.getAttributes().get(key)); + + log.info(" Result parts: (size=" + ttr.getResultParts().size() + ")"); + for (TreeSPath path : ttr.getResultParts().keySet()) { + log.info(" Path: " + path); + PartSubList lst = ttr.getResultParts().get(path); + for (TestResultPart part : lst.getParts()) + log.info(" " + part); + } + + log.info(" Elements: (size=" + ttr.getElements().size() + ")"); + for (TreeSPath path : ttr.getElements().keySet()) { + SimpleSElement elem = (SimpleSElement) ttr.getElements().get(path); + log.info(" Path: " + path + ", Element: " + elem.getLabel()); + for (String tag : elem.getTags().keySet()) + log.info(" " + tag + "=" + elem.getTags().get(tag)); + } + } /** Makes sure this is a singleton */