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.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
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
+ TreeTestResult ttr = createCompleteTreeTestResult();\r
+ testResultDao.create(ttr);\r
+\r
+ TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
+\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
+\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
+ ttrUpdated.notifyCurrentPath(registry, path);\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
+ // 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
protected String getApplicationContextLocation() {\r
return "org/argeo/slc/hibernate/applicationContext.xml";\r