]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.jcr/src/test/java/org/argeo/slc/jcr/dao/TreeTestResultDaoJcrTest.java
af449c3eb74c472e7c68b048d5a6540b65f2b9f6
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / test / java / org / argeo / slc / jcr / dao / TreeTestResultDaoJcrTest.java
1 /*
2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.argeo.slc.jcr.dao;
18
19 import java.io.ByteArrayOutputStream;
20 import java.util.Map;
21 import java.util.TreeMap;
22 import java.util.UUID;
23
24 import javax.jcr.Session;
25
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28 import org.argeo.slc.core.attachment.SimpleAttachment;
29 import org.argeo.slc.core.structure.tree.TreeSPath;
30 import org.argeo.slc.core.test.SimpleResultPart;
31 import org.argeo.slc.core.test.tree.TreeTestResult;
32 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
33 import org.argeo.slc.unit.AbstractSpringTestCase;
34 import org.argeo.slc.unit.test.tree.TreeTestResultTestUtils;
35 import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;
36
37 public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
38 private final static Log log = LogFactory
39 .getLog(TreeTestResultDaoJcrTest.class);
40
41 private TreeTestResultDao ttrDao;
42
43 @Override
44 protected void setUp() throws Exception {
45 super.setUp();
46 ttrDao = getBean(TreeTestResultDao.class);
47 log.debug("Context Initialized");
48 }
49
50 public void testExportXml() throws Exception {
51 TreeTestResult ttr = TreeTestResultTestUtils
52 .createComplexeTreeTestResult();
53 ttrDao.create(ttr);
54
55 Session session = getBean(Session.class);
56 ByteArrayOutputStream out = new ByteArrayOutputStream();
57 session.exportDocumentView("/slc", out, true, false);
58 log.debug("\n\n"+new String(out.toByteArray())+"\n\n");
59 }
60
61 public void testCreate() {
62 TreeTestResult ttr = TreeTestResultTestUtils
63 .createComplexeTreeTestResult();
64 ttrDao.create(ttr);
65 TreeTestResult ttrPersisted = ttrDao.getTestResult(ttr.getUuid());
66 compareTestResult(ttr, ttrPersisted);
67 UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);
68 }
69
70 public void testUpdate() {
71 TreeTestResult ttr = TreeTestResultTestUtils
72 .createCompleteTreeTestResult();
73 ttrDao.create(ttr);
74 SimpleAttachment sa = new SimpleAttachment(
75 UUID.randomUUID().toString(), "A new Attachment", "UTF8");
76 // test if we can attach a new doc
77 ttrDao.addAttachment(ttr.getUuid(), sa);
78
79 // test if an existing doc is not added 2 times.
80 TreeTestResult ttr2 = ttrDao.getTestResult(ttr.getUuid());
81 ttrDao.addAttachment(ttr.getUuid(), sa);
82 TreeTestResult ttr3 = ttrDao.getTestResult(ttr.getUuid());
83 assertEquals(ttr3.getAttachments().size(), ttr2.getAttachments().size());
84
85 // Test Add ResultPart
86 // Initializing context
87 SimpleResultPart resultPart = TreeTestResultTestUtils
88 .createSimpleResultPartFailed();
89 TreeSPath path = new TreeSPath("/test1");
90 ttrDao.addResultPart(ttr.getUuid(), path, resultPart, null);
91
92 // TestAdd Attribute
93 Map<String, String> newAtt = new TreeMap<String, String>();
94 newAtt.put("NewTestCase", "NonSortedView");
95 newAtt.put("NewTestCaseType", "csvdiff");
96 ttrDao.updateAttributes(ttr.getUuid(), newAtt);
97
98 ttr2 = ttrDao.getTestResult(ttr.getUuid());
99 assertEquals(ttr.getAttributes().size() + 2, ttr2.getAttributes()
100 .size());
101 assertEquals("csvdiff", ttr2.getAttributes().get("NewTestCaseType"));
102
103 // Test update existing Attribute
104 ttrDao.updateAttributes(ttr.getUuid(), newAtt);
105 assertEquals(ttr.getAttributes().size() + 2, ttr2.getAttributes()
106 .size());
107
108 }
109
110 public void testResultPartOnly() {
111
112 TreeTestResult ttr = TreeTestResultTestUtils
113 .createComplexeTreeTestResult();
114
115 SimpleResultPart resultPart = TreeTestResultTestUtils
116 .createSimpleResultPartPassed();
117 ttr.addResultPart(resultPart);
118 ttrDao.create(ttr);
119 TreeTestResult ttr2;
120 ttr2 = ttrDao.getTestResult(ttr.getUuid());
121 assertEquals(ttr.getResultParts().size(), ttr2.getResultParts().size());
122 }
123
124 public static void compareTestResult(final TreeTestResult t1,
125 final TreeTestResult t2) {
126
127 assertEquals(t1.getUuid(), t2.getUuid());
128 assertEquals(t1.getCloseDate(), t2.getCloseDate());
129 assertEquals(t1.getAttachments().size(), t2.getAttachments().size());
130 assertEquals(t1.getAttributes().size(), t2.getAttributes().size());
131 assertEquals(t1.getElements().size(), t2.getElements().size());
132 // resultParts
133 assertEquals(t1.getResultParts().size(), t2.getResultParts().size());
134
135 // TODO Add more check.
136 }
137
138 }