]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/runtime/org.argeo.slc.support.hibernate/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernateTest.java
Move to SLC legacy
[gpl/argeo-slc.git] / legacy / runtime / org.argeo.slc.support.hibernate / src / test / java / org / argeo / slc / hibernate / test / tree / TreeTestResultCollectionDaoHibernateTest.java
1 /*
2 * Copyright (C) 2007-2012 Mathieu Baudier
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 package org.argeo.slc.hibernate.test.tree;
17
18 import java.sql.SQLException;
19 import java.util.Date;
20
21 import org.argeo.slc.core.test.tree.TreeTestResult;
22 import org.argeo.slc.core.test.tree.TreeTestResultCollection;
23 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;
24 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
25 import org.argeo.slc.hibernate.unit.HibernateTestCase;
26 import org.argeo.slc.unit.test.tree.TreeTestResultTestUtils;
27 import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;
28 import org.hibernate.HibernateException;
29 import org.hibernate.Session;
30 import org.springframework.orm.hibernate3.HibernateCallback;
31
32 public class TreeTestResultCollectionDaoHibernateTest extends HibernateTestCase {
33
34 public void testScenario() {
35 TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class);
36 TreeTestResultCollectionDao ttrcDao = getBean(TreeTestResultCollectionDao.class);
37
38 String ttrcName = "testCollection";
39
40 TreeTestResult ttr1 = TreeTestResultTestUtils
41 .createCompleteTreeTestResult();
42 ttrDao.create(ttr1);
43
44 TreeTestResultCollection ttrc = new TreeTestResultCollection(ttrcName);
45 ttrcDao.create(ttrc);
46
47 ttrc.getResults().add(ttr1);
48 ttrcDao.update(ttrc);
49
50 final TreeTestResult ttr2 = TreeTestResultTestUtils
51 .createCompleteTreeTestResult();
52 ttrDao.create(ttr2);
53
54 ttrc.getResults().add(ttr2);
55 ttrcDao.update(ttrc);
56
57 ttrc.getResults().remove(ttr1);
58 ttrcDao.update(ttrc);
59
60 final TreeTestResultCollection ttrcPersist = ttrcDao
61 .getTestResultCollection(ttrcName);
62
63 // Because of lazy initialization
64 getHibernateTemplate().execute(new HibernateCallback() {
65
66 public Object doInHibernate(Session session)
67 throws HibernateException, SQLException {
68 session.refresh(ttrcPersist);
69 assertEquals(1, ttrcPersist.getResults().size());
70 UnitTestTreeUtil.assertTreeTestResult(ttr2, ttrcPersist
71 .getResults().iterator().next());
72 return null;
73 }
74 });
75 }
76
77 public void testResultsWithSameCloseDate() {
78 TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class);
79 TreeTestResultCollectionDao ttrcDao = getBean(TreeTestResultCollectionDao.class);
80
81 String ttrcName = "testCollection";
82
83 Date closeDate = new Date();
84
85 // TTR1
86 TreeTestResult ttr1 = TreeTestResultTestUtils
87 .createCompleteTreeTestResult();
88 ttr1.setCloseDate(closeDate);
89 ttrDao.create(ttr1);
90
91 // TTR2
92 TreeTestResult ttr2 = TreeTestResultTestUtils
93 .createCompleteTreeTestResult();
94 ttr2.setCloseDate(closeDate);
95 ttrDao.create(ttr2);
96
97 // TTRC
98 TreeTestResultCollection ttrc = new TreeTestResultCollection(ttrcName);
99 ttrc.getResults().add(ttr1);
100 ttrc.getResults().add(ttr2);
101 ttrcDao.create(ttrc);
102
103 final TreeTestResultCollection ttrcPersist = ttrcDao
104 .getTestResultCollection(ttrcName);
105 // Because of lazy initialization
106 getHibernateTemplate().execute(new HibernateCallback() {
107
108 public Object doInHibernate(Session session)
109 throws HibernateException, SQLException {
110 session.refresh(ttrcPersist);
111 assertEquals(2, ttrcPersist.getResults().size());
112 return null;
113 }
114 });
115 }
116
117 @Override
118 protected String getApplicationContextLocation() {
119 return "org/argeo/slc/hibernate/applicationContext.xml";
120 }
121
122 }