2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org
.argeo
.slc
.jcr
.dao
;
19 import java
.io
.ByteArrayOutputStream
;
21 import java
.util
.TreeMap
;
22 import java
.util
.UUID
;
24 import javax
.jcr
.Session
;
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
;
37 public class TreeTestResultDaoJcrTest
extends AbstractSpringTestCase
{
38 private final static Log log
= LogFactory
39 .getLog(TreeTestResultDaoJcrTest
.class);
41 private TreeTestResultDao ttrDao
;
44 protected void setUp() throws Exception
{
46 ttrDao
= getBean(TreeTestResultDao
.class);
47 log
.debug("Context Initialized");
50 public void testExportXml() throws Exception
{
51 TreeTestResult ttr
= TreeTestResultTestUtils
52 .createComplexeTreeTestResult();
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");
61 public void testCreate() {
62 TreeTestResult ttr
= TreeTestResultTestUtils
63 .createComplexeTreeTestResult();
65 TreeTestResult ttrPersisted
= ttrDao
.getTestResult(ttr
.getUuid());
66 compareTestResult(ttr
, ttrPersisted
);
67 UnitTestTreeUtil
.assertTreeTestResult(ttr
, ttrPersisted
);
70 public void testUpdate() {
71 TreeTestResult ttr
= TreeTestResultTestUtils
72 .createCompleteTreeTestResult();
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
);
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());
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);
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
);
98 ttr2
= ttrDao
.getTestResult(ttr
.getUuid());
99 assertEquals(ttr
.getAttributes().size() + 2, ttr2
.getAttributes()
101 assertEquals("csvdiff", ttr2
.getAttributes().get("NewTestCaseType"));
103 // Test update existing Attribute
104 ttrDao
.updateAttributes(ttr
.getUuid(), newAtt
);
105 assertEquals(ttr
.getAttributes().size() + 2, ttr2
.getAttributes()
110 public void testResultPartOnly() {
112 TreeTestResult ttr
= TreeTestResultTestUtils
113 .createComplexeTreeTestResult();
115 SimpleResultPart resultPart
= TreeTestResultTestUtils
116 .createSimpleResultPartPassed();
117 ttr
.addResultPart(resultPart
);
120 ttr2
= ttrDao
.getTestResult(ttr
.getUuid());
121 assertEquals(ttr
.getResultParts().size(), ttr2
.getResultParts().size());
124 public static void compareTestResult(final TreeTestResult t1
,
125 final TreeTestResult t2
) {
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());
133 assertEquals(t1
.getResultParts().size(), t2
.getResultParts().size());
135 // TODO Add more check.