]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java
Various fixes so that SLC example works again
[gpl/argeo-slc.git] / org.argeo.slc.core / src / test / java / org / argeo / slc / hibernate / test / tree / TreeTestResultDaoHibernateTest.java
index ff2176280fca144bb84412893109c4ba12baa0bc..c1808da13fd4a43686b90b44ea5b8ff944a8e480 100644 (file)
 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