package org.argeo.slc.hibernate.test.tree;\r
\r
-import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleResultPartFailed;\r
-import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleResultPartPassed;\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 org.argeo.slc.core.process.SlcExecution;\r
-import org.argeo.slc.core.process.SlcExecutionStep;\r
-import org.argeo.slc.core.process.SlcExecutionTestUtils;\r
+import java.util.Date;\r
+\r
+import org.argeo.slc.core.structure.SimpleSElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\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.TreeTestResult;\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
- TreeTestResultDao testResultDao = (TreeTestResultDao) getContext()\r
- .getBean("testResultDao");\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 ttr = createCompleteTreeTestResult();\r
+ testResultDao.create(ttr);\r
+\r
+ TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
+\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
+ }\r
+\r
+ public void testUpdate() {\r
+ TreeTestResult ttr = createCompleteTreeTestResult();\r
+ testResultDao.create(ttr);\r
+\r
+ TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
\r
- String pathParentStr = "/root/testParent";\r
- String pathStr = pathParentStr + "/test";\r
+ // Modifying ttrUpdated\r
+\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
+ String pathStr = "/test";\r
TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
- // treeSPathDao.create(path);\r
\r
- TreeTestResult ttr = createSimpleTreeTestResult();\r
- ttr.notifySlcExecution(slcExecution);\r
- ttr.notifyCurrentPath(null, path);\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
- ttr.addResultPart(createSimpleResultPartPassed());\r
- ttr.addResultPart(createSimpleResultPartFailed());\r
+ ttrUpdated.notifyCurrentPath(registry, path);\r
\r
- testResultDao.create(ttr);\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartPassed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartFailed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartError());\r
\r
- TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getTestResultId());\r
- UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
+ testResultDao.update(ttrUpdated);\r
+\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