001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata groupware may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: GroupwareTestCase.java,v $
031: * Revision 1.6 2005/10/11 18:53:08 colinmacleod
032: * Fixed some checkstyle and javadoc issues.
033: *
034: * Revision 1.5 2005/09/29 14:17:03 colinmacleod
035: * Split UserGroupDO off from GroupDO.
036: * Moved UserGroupDO, Right classes to security subproject (from
037: * addressbook).
038: * Centralized user right handling into Rights and RightsImpl.
039: *
040: * Revision 1.4 2005/09/15 10:23:23 colinmacleod
041: * Upgraded Maven to 1.1 (beta-2).
042: * Upgraded Hibernate to 3.0.5.
043: *
044: * Revision 1.3 2005/04/10 20:09:39 colinmacleod
045: * Added new themes.
046: * Changed id type to String.
047: * Changed i tag to em and b tag to strong.
048: * Improved PicoContainerFactory with NanoContainer scripts.
049: *
050: * Revision 1.2 2005/04/09 17:19:11 colinmacleod
051: * Changed copyright text to GPL v2 explicitly.
052: *
053: * Revision 1.1.1.1 2005/03/10 17:50:13 colinmacleod
054: * Restructured ivata op around Hibernate/PicoContainer.
055: * Renamed ivata groupware.
056: *
057: * Revision 1.1 2004/07/13 19:41:17 colinmacleod
058: * Moved project to POJOs from EJBs.
059: * Applied PicoContainer to services layer (replacing session EJBs).
060: * Applied Hibernate to persistence layer (replacing entity EJBs).
061: * -----------------------------------------------------------------------------
062: */
063: package com.ivata.groupware;
064:
065: import java.util.HashMap;
066: import java.util.Map;
067:
068: import junit.framework.TestCase;
069:
070: import org.hibernate.Interceptor;
071: import org.hibernate.Session;
072: import org.hibernate.SessionFactory;
073: import org.hibernate.cfg.Configuration;
074:
075: import com.ivata.groupware.admin.security.server.SecuritySession;
076: import com.ivata.groupware.admin.security.server.TestSecuritySession;
077: import com.ivata.groupware.admin.security.user.UserDO;
078: import com.ivata.groupware.container.persistence.hibernate.HibernateInterceptor;
079: import com.ivata.groupware.container.persistence.hibernate.HibernateManager;
080: import com.ivata.groupware.container.persistence.hibernate.HibernateQueryFactory;
081: import com.ivata.groupware.container.persistence.hibernate.HibernateSession;
082:
083: /**
084: * General test case. TODO
085: *
086: * @author Colin MacLeod
087: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
088: * @since ivata groupware 0.10 (Jun 2, 2004)
089: * @version $Revision: 1.6 $
090: */
091: public class GroupwareTestCase extends TestCase {
092: /**
093: * <p>
094: * Hibernate persistence manager.
095: * </p>
096: */
097: private static HibernateManager hibernateManager;
098: /**
099: * <p>
100: * Hibernate session - used to access hibernate.
101: * </p>
102: */
103: private static HibernateSession hibernateSession;
104:
105: /**
106: * <p>
107: * Fake security session - gives you admin rights.
108: * </p>
109: */
110: private static SecuritySession securitySession;
111:
112: /**
113: * Get the hibernate manager used for test persistence.
114: *
115: * @return hibernate manager used for test persistence.
116: */
117: protected static HibernateManager getHibernateManager() {
118: return hibernateManager;
119: }
120:
121: /**
122: * Get a hibernate session to test persistence.
123: *
124: * @return hibernate session to test persistence.
125: */
126: protected static HibernateSession getHibernateSession() {
127: return hibernateSession;
128: }
129:
130: /**
131: * Get a security session for testing.
132: *
133: * @return test security session.
134: */
135: protected static SecuritySession getSecuritySession() {
136: return securitySession;
137: }
138:
139: /**
140: * <p>
141: * Hibernate configuration to use to configure the hibernate session.
142: * </p>
143: */
144: private Configuration hibernateConfiguration;
145:
146: /**
147: * Constructor.
148: *
149: * @param hibernateConfigurationParam Used to initialize a hibernate
150: * session for testing.
151: * @param arg0 {@inheritDoc}.
152: */
153: public GroupwareTestCase(
154: final Configuration hibernateConfigurationParam,
155: final String arg0) {
156: super (arg0);
157: this .hibernateConfiguration = hibernateConfigurationParam;
158: }
159:
160: /**
161: * {@inheritDoc}
162: *
163: * @throws Exception {@inheritDoc}
164: */
165: protected synchronized void setUp() throws Exception {
166: super .setUp();
167:
168: if (hibernateSession == null) {
169: // set up the hibernate session
170: SessionFactory sessionFactory = hibernateConfiguration
171: .buildSessionFactory();
172:
173: Map queryMap = new HashMap();
174: Map queryArgumentsMap = new HashMap();
175:
176: hibernateManager = new HibernateManager(sessionFactory,
177: new HibernateQueryFactory(queryMap,
178: queryArgumentsMap));
179: Interceptor interceptor = new HibernateInterceptor(
180: hibernateManager, sessionFactory);
181: Session wrappedSession = sessionFactory
182: .openSession(interceptor);
183: hibernateSession = new HibernateSession(wrappedSession,
184: wrappedSession.beginTransaction(), null);
185:
186: // create a fake security session for admin
187: UserDO adminUser = (UserDO) hibernateManager
188: .findByPrimaryKey(hibernateSession, UserDO.class,
189: new Integer(1));
190: securitySession = new TestSecuritySession(adminUser);
191: }
192: }
193:
194: /**
195: * {@inheritDoc}
196: *
197: * @throws Exception {@inheritDoc}
198: */
199: protected void tearDown() throws Exception {
200: super.tearDown();
201: }
202: }
|