--- /dev/null
+package org.argeo.slc.jcr.dao;\r
+\r
+import java.util.Map;\r
+import java.util.TreeMap;\r
+import java.util.UUID;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.core.attachment.SimpleAttachment;\r
+import org.argeo.slc.core.structure.tree.TreeSPath;\r
+import org.argeo.slc.core.test.SimpleResultPart;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.test.tree.TreeTestResultTestUtils;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+\r
+public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {\r
+ private final static Log log = LogFactory\r
+ .getLog(TreeTestResultDaoJcrTest.class);\r
+\r
+ private TreeTestResultDao ttrDao;\r
+\r
+ @Override\r
+ protected void setUp() throws Exception {\r
+ super.setUp();\r
+ ttrDao = getBean(TreeTestResultDao.class);\r
+ log.debug("Context Initialized");\r
+ }\r
+\r
+ @SuppressWarnings("restriction")\r
+ public void testCreate() {\r
+ TreeTestResult ttr = TreeTestResultTestUtils\r
+ .createComplexeTreeTestResult();\r
+ ttrDao.create(ttr);\r
+ TreeTestResult ttrPersisted = ttrDao.getTestResult(ttr.getUuid());\r
+ compareTestResult(ttr, ttrPersisted);\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
+ }\r
+\r
+ @SuppressWarnings("restriction")\r
+ public void testUpdate() {\r
+ TreeTestResult ttr = TreeTestResultTestUtils\r
+ .createCompleteTreeTestResult();\r
+ ttrDao.create(ttr);\r
+ SimpleAttachment sa = new SimpleAttachment(\r
+ UUID.randomUUID().toString(), "A new Attachment", "UTF8");\r
+ // test if we can attach a new doc\r
+ ttrDao.addAttachment(ttr.getUuid(), sa);\r
+\r
+ // test if an existing doc is not added 2 times.\r
+ TreeTestResult ttr2 = ttrDao.getTestResult(ttr.getUuid());\r
+ ttrDao.addAttachment(ttr.getUuid(), sa);\r
+ TreeTestResult ttr3 = ttrDao.getTestResult(ttr.getUuid());\r
+ assertEquals(ttr3.getAttachments().size(), ttr2.getAttachments().size());\r
+\r
+ // Test Add ResultPart\r
+ // Initializing context\r
+ SimpleResultPart resultPart = TreeTestResultTestUtils\r
+ .createSimpleResultPartFailed();\r
+ TreeSPath path = new TreeSPath("/test1");\r
+ ttrDao.addResultPart(ttr.getUuid(), path, resultPart, null);\r
+\r
+ // TestAdd Attribute\r
+ Map<String, String> newAtt = new TreeMap<String, String>();\r
+ newAtt.put("NewTestCase", "NonSortedView");\r
+ newAtt.put("NewTestCaseType", "csvdiff");\r
+ ttrDao.updateAttributes(ttr.getUuid(), newAtt);\r
+\r
+ ttr2 = ttrDao.getTestResult(ttr.getUuid());\r
+ assertEquals(ttr.getAttributes().size() + 2, ttr2.getAttributes()\r
+ .size());\r
+ assertEquals("csvdiff", ttr2.getAttributes().get("NewTestCaseType"));\r
+\r
+ // Test update existing Attribute\r
+ ttrDao.updateAttributes(ttr.getUuid(), newAtt);\r
+ assertEquals(ttr.getAttributes().size() + 2, ttr2.getAttributes()\r
+ .size());\r
+\r
+ }\r
+ @SuppressWarnings("restriction")\r
+ public void testResultPartOnly() {\r
+ \r
+ TreeTestResult ttr = TreeTestResultTestUtils\r
+ .createComplexeTreeTestResult();\r
+\r
+ SimpleResultPart resultPart = TreeTestResultTestUtils\r
+ .createSimpleResultPartPassed();\r
+ ttr.addResultPart(resultPart);\r
+ ttrDao.create(ttr);\r
+ TreeTestResult ttr2;\r
+ ttr2 = ttrDao.getTestResult(ttr.getUuid());\r
+ assertEquals(ttr.getResultParts().size(), ttr2.getResultParts()\r
+ .size());\r
+ }\r
+\r
+ public static void compareTestResult(final TreeTestResult t1,\r
+ final TreeTestResult t2) {\r
+\r
+ assertEquals(t1.getUuid(), t2.getUuid());\r
+ assertEquals(t1.getCloseDate(), t2.getCloseDate());\r
+ assertEquals(t1.getAttachments().size(), t2.getAttachments().size());\r
+ assertEquals(t1.getAttributes().size(), t2.getAttributes().size());\r
+ assertEquals(t1.getElements().size(), t2.getElements().size());\r
+ // resultParts \r
+ assertEquals(t1.getResultParts().size(), t2.getResultParts().size());\r
+ \r
+ \r
+ // TODO Add more check.\r
+ }\r
+\r
+}\r