From: Mathieu Baudier Date: Fri, 25 Apr 2008 12:54:17 +0000 (+0000) Subject: Provide a generic framework for unit tests on test tree results X-Git-Tag: argeo-slc-2.1.7~2968 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=92dec409c3cd491dcd8f706f4e17613ba64b4077;p=gpl%2Fargeo-slc.git Provide a generic framework for unit tests on test tree results git-svn-id: https://svn.argeo.org/slc/trunk@1072 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java index 185d200e3..cd04ad7cb 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java @@ -12,6 +12,15 @@ public class NumericTRId implements TestResultId { private Long value; private DeployedSystemId deployedSystemId; + + /** For ORM*/ + public NumericTRId(){ + + } + + public NumericTRId(Long value){ + this.value = value; + } /** * Initializes the long value with the current time (based on 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..4f07231d5 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,96 @@ package org.argeo.slc.unit.test.tree; -import junit.framework.TestCase; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.fail; 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()); + assertEquals(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); + } + } + + 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 */ diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultTestUtils.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultTestUtils.java new file mode 100644 index 000000000..fc9c113da --- /dev/null +++ b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultTestUtils.java @@ -0,0 +1,37 @@ +package org.argeo.slc.core.test.tree; + +import java.util.Date; + +import org.argeo.slc.core.test.NumericTRId; +import org.argeo.slc.core.test.SimpleResultPart; +import org.argeo.slc.core.test.TestStatus; + +public abstract class TreeTestResultTestUtils { + + public static TreeTestResult createSimpleTreeTestResult(){ + TreeTestResult treeTestResult = new TreeTestResult(); + treeTestResult.setNumericResultId( new NumericTRId(System.currentTimeMillis())); + treeTestResult.setCloseDate(new Date()); + return treeTestResult; + } + + public static SimpleResultPart createSimpleResultPartPassed(){ + SimpleResultPart partPassed = new SimpleResultPart(); + String msgPassed = "message"; + partPassed.setStatus(TestStatus.PASSED); + partPassed.setMessage(msgPassed); + return partPassed; + } + + public static SimpleResultPart createSimpleResultPartFailed(){ + SimpleResultPart partFailed = new SimpleResultPart(); + String msgFailed = "too bad"; + partFailed.setStatus(TestStatus.FAILED); + partFailed.setMessage(msgFailed); + return partFailed; + } + + private TreeTestResultTestUtils(){ + + } +} diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java index 5858c4c0e..ff2176280 100644 --- a/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java +++ b/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java @@ -1,28 +1,21 @@ package org.argeo.slc.hibernate.test.tree; -import java.util.Date; -import java.util.List; +import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleResultPartFailed; +import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleResultPartPassed; +import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleTreeTestResult; import org.argeo.slc.core.process.SlcExecution; import org.argeo.slc.core.process.SlcExecutionStep; import org.argeo.slc.core.process.SlcExecutionTestUtils; import org.argeo.slc.core.structure.tree.TreeSPath; -import org.argeo.slc.core.test.NumericTRId; -import org.argeo.slc.core.test.SimpleResultPart; -import org.argeo.slc.core.test.TestStatus; -import org.argeo.slc.core.test.tree.PartSubList; import org.argeo.slc.core.test.tree.TreeTestResult; -import org.argeo.slc.dao.structure.tree.TreeSPathDao; -import org.argeo.slc.dao.test.TestResultDao; import org.argeo.slc.dao.test.tree.TreeTestResultDao; import org.argeo.slc.unit.AbstractSpringTestCase; +import org.argeo.slc.unit.test.tree.UnitTestTreeUtil; public class TreeTestResultDaoHibernateTest extends AbstractSpringTestCase { public void testCreate() { - TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean( - "treeSPathDao"); - TreeTestResultDao testResultDao = (TreeTestResultDao) getContext() .getBean("testResultDao"); @@ -35,55 +28,20 @@ public class TreeTestResultDaoHibernateTest extends AbstractSpringTestCase { String pathParentStr = "/root/testParent"; String pathStr = pathParentStr + "/test"; TreeSPath path = TreeSPath.parseToCreatePath(pathStr); - //treeSPathDao.create(path); - - TreeTestResult treeTestResult = new TreeTestResult(); - treeTestResult.notifySlcExecution(slcExecution); - SimpleResultPart partPassed = new SimpleResultPart(); - String msgPassed = "message"; - partPassed.setStatus(TestStatus.PASSED); - partPassed.setMessage(msgPassed); + // treeSPathDao.create(path); - SimpleResultPart partFailed = new SimpleResultPart(); - String msgFailed = "too bad"; - partFailed.setStatus(TestStatus.FAILED); - partFailed.setMessage(msgFailed); + TreeTestResult ttr = createSimpleTreeTestResult(); + ttr.notifySlcExecution(slcExecution); + ttr.notifyCurrentPath(null, path); - NumericTRId trId = new NumericTRId(); - trId.setValue(1l); - treeTestResult.setNumericResultId(trId); - treeTestResult.notifyCurrentPath(null, path); - treeTestResult.addResultPart(partPassed); - treeTestResult.addResultPart(partFailed); + ttr.addResultPart(createSimpleResultPartPassed()); + ttr.addResultPart(createSimpleResultPartFailed()); - Date closeDate = new Date(); - treeTestResult.setCloseDate(closeDate); - - testResultDao.create(treeTestResult); + testResultDao.create(ttr); TreeTestResult ttrPersisted = (TreeTestResult) testResultDao - .getTestResult(trId); - PartSubList slPersisted = ttrPersisted.getResultParts().get(path); - assertEquals(slcExecution.getUuid(), slPersisted.getSlcExecutionUuid()); - assertEquals(step.getUuid(), slPersisted.getSlcExecutionStepUuid()); - - assertEquals(2, slPersisted.getParts().size()); - SimpleResultPart part0 = (SimpleResultPart) slPersisted.getParts().get( - 0); - assertEquals(TestStatus.PASSED, part0.getStatus()); - assertEquals(msgPassed, part0.getMessage()); - - SimpleResultPart part1 = (SimpleResultPart) slPersisted.getParts().get( - 1); - assertEquals(TestStatus.FAILED, part1.getStatus()); - assertEquals(msgFailed, part1.getMessage()); - - assertEquals(closeDate, ttrPersisted.getCloseDate()); - - List results = testResultDao.listResults(path); - assertEquals(1, results.size()); - assertEquals(trId, results.get(0).getTestResultId()); - + .getTestResult(ttr.getTestResultId()); + UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted); } @Override