]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernateTest.java
Create separate Hibernate project
[gpl/argeo-slc.git] / org.argeo.slc.core / src / test / java / org / argeo / slc / hibernate / test / tree / TreeTestResultDaoHibernateTest.java
index 44b9b3fc1bcbf8a04e9d2d4c70bed2ac2be86df7..c1808da13fd4a43686b90b44ea5b8ff944a8e480 100644 (file)
 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.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().getBean(\r
-                               "testResultDao");\r
+               TreeTestResult ttr = createCompleteTreeTestResult();\r
+               testResultDao.create(ttr);\r
 \r
-               String pathParentStr = "/root/testParent";\r
-               String pathStr = pathParentStr + "/test";\r
-               TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
-               treeSPathDao.create(path);\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
-               TreeTestResult treeTestResult = new TreeTestResult();\r
-               SimpleResultPart partPassed = new SimpleResultPart();\r
-               String msgPassed = "message";\r
-               partPassed.setStatus(TestStatus.PASSED);\r
-               partPassed.setMessage(msgPassed);\r
+               // Modifying ttrUpdated\r
 \r
-               SimpleResultPart partFailed = new SimpleResultPart();\r
-               String msgFailed = "too bad";\r
-               partFailed.setStatus(TestStatus.FAILED);\r
-               partFailed.setMessage(msgFailed);\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
-               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
+               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
-               Date closeDate = new Date();\r
-               treeTestResult.setCloseDate(closeDate);\r
+               ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+                               .createSimpleResultPartPassed());\r
+               ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+                               .createSimpleResultPartFailed());\r
+               ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+                               .createSimpleResultPartError());\r
 \r
-               testResultDao.create(treeTestResult);\r
+               testResultDao.update(ttrUpdated);\r
 \r
-               TreeTestResult treeTestResult2 = (TreeTestResult) testResultDao\r
-                               .getTestResult(trId);\r
-               PartSubList list = treeTestResult2.getResultParts().get(path);\r
+               // comparison of ttrUpdated and ttrRetrieved\r
+               TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
+                               .getTestResult(ttr.getUuid());\r
 \r
-               assertEquals(2, list.getParts().size());\r
-               SimpleResultPart part0 = (SimpleResultPart) list.getParts().get(0);\r
-               assertEquals(TestStatus.PASSED, (int) part0.getStatus());\r
-               assertEquals(msgPassed, part0.getMessage());\r
+               UnitTestTreeUtil.assertTreeTestResult(ttrRetrieved, ttrUpdated);\r
+       }\r
 \r
-               SimpleResultPart part1 = (SimpleResultPart) list.getParts().get(1);\r
-               assertEquals(TestStatus.FAILED, (int) part1.getStatus());\r
-               assertEquals(msgFailed, part1.getMessage());\r
+       public void testMultipleUpdateScenario() throws Exception{\r
+               TreeSRegistry registry = new TreeSRegistry();\r
 \r
-               assertEquals(closeDate, treeTestResult2.getCloseDate());\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
-               List<TreeTestResult> results = testResultDao.listResults(path);\r
-               assertEquals(1, results.size());\r
-               assertEquals(trId, results.get(0).getTestResultId());\r
+               ttr.close();\r
                \r
+               testResultDao.close(ttr.getUuid(), ttr.getCloseDate());\r
        }\r
 \r
        @Override\r