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=6f5e7b63b56864ceba761f81858caf3f0a4bba2e;hb=1d3622f2ece5951a4396bcb70e2f182a577f3084;hp=5024df1186be3e5c9ec459f5186c07fef864e6c1;hpb=0ee30b3cfd07a1e96eeb21ee729b2c7825585b94;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 5024df118..6f5e7b63b 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,26 +1,125 @@ package org.argeo.slc.unit.test.tree; -import junit.framework.TestCase; +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.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; import org.argeo.slc.core.test.tree.PartSubList; import org.argeo.slc.core.test.tree.TreeTestResult; /** Utilities for unit tests. */ public class UnitTestTreeUtil { - /** Assert one part of a tree test result. */ + public static void assertTreeTestResult(TreeTestResult expected, + TreeTestResult reached) { + assertEquals(expected.getTestResultId(), reached.getTestResultId()); + assertDateSec(expected.getCloseDate(), reached.getCloseDate()); + + assertEquals(expected.getResultParts().size(), reached.getResultParts() + .size()); + for (TreeSPath path : expected.getResultParts().keySet()) { + PartSubList lstExpected = expected.getResultParts().get(path); + PartSubList lstReached = expected.getResultParts().get(path); + if (lstReached == null) { + fail("No result for path " + path); + return; + } + assertPartSubList(lstExpected, lstReached); + } + + 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); + } + + } + + 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) { + if (lstExpected.getSlcExecutionUuid() == null) { + assertNull(lstReached.getSlcExecutionUuid()); + } else { + assertEquals(lstExpected.getSlcExecutionUuid(), lstReached + .getSlcExecutionUuid()); + } + + if (lstExpected.getSlcExecutionStepUuid() == null) { + assertNull(lstReached.getSlcExecutionStepUuid()); + } else { + assertEquals(lstExpected.getSlcExecutionStepUuid(), lstReached + .getSlcExecutionStepUuid()); + } + + assertEquals(lstExpected.getParts().size(), lstReached.getParts() + .size()); + for (int i = 0; i < lstExpected.getParts().size(); i++) { + assertPart(lstExpected.getParts().get(i), lstReached.getParts() + .get(i)); + } + } + + /** + * Assert one part of a tree test result. + * + * @deprecated use {@link #assertPart(TestResultPart, TestResultPart)} + * instead + */ public static void assertPart(TreeTestResult testResult, String pathStr, int index, Integer status, String message) { TreeSPath path = TreeSPath.parseToCreatePath(pathStr); PartSubList list = testResult.getResultParts().get(path); if (list == null) { - TestCase.fail("No result for path " + path); + fail("No result for path " + path); return; } + if (index >= list.getParts().size()) { + fail("Not enough parts."); + } SimpleResultPart part = (SimpleResultPart) list.getParts().get(index); - TestCase.assertEquals(status, part.getStatus()); - TestCase.assertEquals(message, part.getMessage()); + assertPart(part, status, message, null); + } + + public static void assertPart(TestResultPart expected, + TestResultPart reached) { + assertPart(reached, expected.getStatus(), expected.getMessage(), + expected.getException()); + } + + /** Assert one part of a tree test result. */ + private static void assertPart(TestResultPart part, Integer status, + String message, Exception exception) { + assertEquals(status, part.getStatus()); + assertEquals(message, part.getMessage()); + if (exception == null) { + assertNull(part.getException()); + } else { + assertEquals(exception, part.getException()); + } } /** Makes sure this is a singleton */