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
\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.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
TreeTestResult ttr = createCompleteTreeTestResult();\r
testResultDao.create(ttr);\r
\r
TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getTestResultId());\r
- \r
+ .getTestResult(ttr.getUuid());\r
+\r
UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
}\r
\r
public void testUpdate() {\r
- TreeTestResultDao testResultDao = (TreeTestResultDao) getContext()\r
- .getBean("testResultDao");\r
-\r
TreeTestResult ttr = createCompleteTreeTestResult();\r
testResultDao.create(ttr);\r
\r
TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getTestResultId());\r
- \r
+ .getTestResult(ttr.getUuid());\r
+\r
// Modifying ttrUpdated\r
- \r
- /** this closeDate update commented because \r
- * the assertTreeTestResult will find a unexpected \r
- * discrepancy in the date.\r
- * ttrUpdated.setCloseDate(new Date()); \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
+\r
String pathStr = "/test";\r
TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
\r
registry.register(path, elem);\r
\r
ttrUpdated.notifyCurrentPath(registry, path);\r
- \r
- ttrUpdated.addResultPart(TreeTestResultTestUtils.createSimpleResultPartPassed());\r
- ttrUpdated.addResultPart(TreeTestResultTestUtils.createSimpleResultPartFailed());\r
- ttrUpdated.addResultPart(TreeTestResultTestUtils.createSimpleResultPartError());\r
- \r
+\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartPassed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartFailed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartError());\r
+\r
testResultDao.update(ttrUpdated);\r
- \r
+\r
// comparison of ttrUpdated and ttrRetrieved\r
TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getTestResultId());\r
- \r
+ .getTestResult(ttr.getUuid());\r
+\r
UnitTestTreeUtil.assertTreeTestResult(ttrRetrieved, ttrUpdated);\r
}\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
protected String getApplicationContextLocation() {\r
return "org/argeo/slc/hibernate/applicationContext.xml";\r