package org.argeo.slc.hibernate.test.tree;\r
\r
+import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;\r
+import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleTreeTestResult;\r
+\r
import java.util.Date;\r
-import java.util.List;\r
\r
-import org.argeo.slc.core.process.SlcExecution;\r
-import org.argeo.slc.core.process.SlcExecutionStep;\r
-import org.argeo.slc.core.process.SlcExecutionTestUtils;\r
+import org.argeo.slc.core.structure.SimpleSElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
-import org.argeo.slc.core.test.NumericTRId;\r
+import org.argeo.slc.core.structure.tree.TreeSRegistry;\r
import org.argeo.slc.core.test.SimpleResultPart;\r
import org.argeo.slc.core.test.TestStatus;\r
-import org.argeo.slc.core.test.tree.PartSubList;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
-import org.argeo.slc.dao.structure.tree.TreeSPathDao;\r
-import org.argeo.slc.dao.test.TestResultDao;\r
+import org.argeo.slc.core.test.tree.TreeTestResultTestUtils;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
\r
public class TreeTestResultDaoHibernateTest extends AbstractSpringTestCase {\r
+ private TreeTestResultDao testResultDao = null;\r
+\r
+ @Override\r
+ public void setUp() {\r
+ testResultDao = (TreeTestResultDao) getContext().getBean(\r
+ "testResultDao");\r
+ }\r
\r
public void testCreate() {\r
- TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean(\r
- "treeSPathDao");\r
\r
- TreeTestResultDao testResultDao = (TreeTestResultDao) getContext()\r
- .getBean("testResultDao");\r
+ TreeTestResult ttr = createCompleteTreeTestResult();\r
+ testResultDao.create(ttr);\r
\r
- // SLC Execution\r
- SlcExecution slcExecution = SlcExecutionTestUtils\r
- .createSimpleSlcExecution();\r
- SlcExecutionStep step = new SlcExecutionStep("LOG", "JUnit step");\r
- slcExecution.getSteps().add(step);\r
+ TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
\r
- String pathParentStr = "/root/testParent";\r
- String pathStr = pathParentStr + "/test";\r
- TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
- treeSPathDao.create(path);\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
+ }\r
\r
- TreeTestResult treeTestResult = new TreeTestResult();\r
- treeTestResult.notifySlcExecution(slcExecution);\r
- SimpleResultPart partPassed = new SimpleResultPart();\r
- String msgPassed = "message";\r
- partPassed.setStatus(TestStatus.PASSED);\r
- partPassed.setMessage(msgPassed);\r
+ public void testUpdate() {\r
+ TreeTestResult ttr = createCompleteTreeTestResult();\r
+ testResultDao.create(ttr);\r
\r
- SimpleResultPart partFailed = new SimpleResultPart();\r
- String msgFailed = "too bad";\r
- partFailed.setStatus(TestStatus.FAILED);\r
- partFailed.setMessage(msgFailed);\r
+ TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
\r
- NumericTRId trId = new NumericTRId();\r
- trId.setValue(1l);\r
- treeTestResult.setNumericResultId(trId);\r
- treeTestResult.notifyCurrentPath(null, path);\r
- treeTestResult.addResultPart(partPassed);\r
- treeTestResult.addResultPart(partFailed);\r
+ // Modifying ttrUpdated\r
\r
- Date closeDate = new Date();\r
- treeTestResult.setCloseDate(closeDate);\r
+ /**\r
+ * this closeDate update commented because the assertTreeTestResult will\r
+ * find a unexpected discrepancy in the date.\r
+ * ttrUpdated.setCloseDate(new Date());\r
+ */\r
\r
- testResultDao.create(treeTestResult);\r
+ String pathStr = "/test";\r
+ TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
\r
- TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
- .getTestResult(trId);\r
- PartSubList slPersisted = ttrPersisted.getResultParts().get(path);\r
- assertEquals(slcExecution.getUuid(), slPersisted.getSlcExecutionUuid());\r
- assertEquals(step.getUuid(), slPersisted.getSlcExecutionStepUuid());\r
+ TreeSRegistry registry = new TreeSRegistry();\r
+ SimpleSElement elem = new SimpleSElement("Unit Test");\r
+ elem.getTags().put("myTag", "myTagValue");\r
+ registry.register(path, elem);\r
\r
- assertEquals(2, slPersisted.getParts().size());\r
- SimpleResultPart part0 = (SimpleResultPart) slPersisted.getParts().get(\r
- 0);\r
- assertEquals(TestStatus.PASSED, part0.getStatus());\r
- assertEquals(msgPassed, part0.getMessage());\r
+ ttrUpdated.notifyCurrentPath(registry, path);\r
\r
- SimpleResultPart part1 = (SimpleResultPart) slPersisted.getParts().get(\r
- 1);\r
- assertEquals(TestStatus.FAILED, part1.getStatus());\r
- assertEquals(msgFailed, part1.getMessage());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartPassed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartFailed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartError());\r
\r
- assertEquals(closeDate, ttrPersisted.getCloseDate());\r
+ testResultDao.update(ttrUpdated);\r
\r
- List<TreeTestResult> results = testResultDao.listResults(path);\r
- assertEquals(1, results.size());\r
- assertEquals(trId, results.get(0).getTestResultId());\r
+ // comparison of ttrUpdated and ttrRetrieved\r
+ TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
+\r
+ UnitTestTreeUtil.assertTreeTestResult(ttrRetrieved, ttrUpdated);\r
+ }\r
\r
+ public void testMultipleUpdateScenario() throws Exception{\r
+ TreeSRegistry registry = new TreeSRegistry();\r
+\r
+ TreeSPath path = new TreeSPath("/root/test");\r
+ SimpleSElement elem = new SimpleSElement("Unit Test");\r
+ elem.getTags().put("myTag", "myTagValue");\r
+ registry.register(path, elem);\r
+ \r
+ TreeTestResult ttr = createSimpleTreeTestResult();\r
+ ttr.notifyCurrentPath(registry, path);\r
+ ttr.addResultPart(new SimpleResultPart(TestStatus.PASSED,"First test"));\r
+ \r
+ testResultDao.create(ttr);\r
+ \r
+ path = new TreeSPath("/root/test2/subtest");\r
+ elem = new SimpleSElement("Sub Test");\r
+ elem.getTags().put("myTag", "myTagValue");\r
+ registry.register(path, elem);\r
+ \r
+ ttr.notifyCurrentPath(registry, path);\r
+ ttr.addResultPart(new SimpleResultPart(TestStatus.PASSED,"Second test"));\r
+ \r
+ testResultDao.update(ttr);\r
+ \r
+ ttr.notifyCurrentPath(registry, path);\r
+ ttr.addResultPart(new SimpleResultPart(TestStatus.PASSED,"Third test with same path"));\r
+ \r
+ testResultDao.update(ttr);\r
+ \r
+ ttr.close();\r
+ \r
+ testResultDao.close(ttr.getUuid(), ttr.getCloseDate());\r
}\r
\r
@Override\r