001: /*
002: * HibernateUtilTest.java
003: * JUnit based test
004: *
005: * Created on January 13, 2007, 3:47 PM
006: */
007:
008: package com.rift.coad.hibernate.util;
009:
010: import junit.framework.*;
011: import java.util.StringTokenizer;
012: import java.util.Map;
013: import java.util.HashMap;
014: import java.util.HashSet;
015: import java.util.Set;
016: import java.util.concurrent.ConcurrentHashMap;
017: import javax.naming.Context;
018: import javax.naming.InitialContext;
019: import javax.transaction.Transaction;
020: import javax.transaction.UserTransaction;
021: import javax.transaction.TransactionManager;
022: import javax.transaction.xa.XAException;
023: import javax.transaction.xa.XAResource;
024: import javax.transaction.xa.Xid;
025: import org.apache.log4j.Logger;
026: import org.hibernate.*;
027: import org.hibernate.cfg.*;
028:
029: // object web imports
030: import org.objectweb.jotm.Jotm;
031:
032: // coadunation imports
033: import com.rift.coad.lib.naming.NamingDirector;
034: import com.rift.coad.lib.naming.ContextManager;
035: import com.rift.coad.lib.db.DBSourceManager;
036:
037: import com.rift.coad.lib.interceptor.InterceptorFactory;
038: import com.rift.coad.lib.security.RoleManager;
039: import com.rift.coad.lib.security.ThreadsPermissionContainer;
040: import com.rift.coad.lib.security.ThreadPermissionSession;
041: import com.rift.coad.lib.security.UserSession;
042: import com.rift.coad.lib.security.user.UserSessionManager;
043: import com.rift.coad.lib.security.user.UserStoreManager;
044: import com.rift.coad.lib.security.SessionManager;
045: import com.rift.coad.lib.security.login.LoginManager;
046: import com.rift.coad.lib.thread.CoadunationThreadGroup;
047:
048: import com.rift.coad.lib.configuration.Configuration;
049: import com.rift.coad.lib.configuration.ConfigurationFactory;
050: import com.rift.coad.lib.transaction.TransactionDirector;
051:
052: /**
053: *
054: * @author mincemeat
055: */
056: public class HibernateUtilTest extends TestCase {
057:
058: public HibernateUtilTest(String testName) {
059: super (testName);
060: }
061:
062: protected void setUp() throws Exception {
063: }
064:
065: protected void tearDown() throws Exception {
066: }
067:
068: /**
069: * Test of class com.rift.coad.hibernate.util.HibernateUtil.
070: */
071: public void testHibernateUtil() throws Exception {
072: System.out.println("getInstance");
073:
074: // init the session information
075: ThreadsPermissionContainer permissions = new ThreadsPermissionContainer();
076: SessionManager.init(permissions);
077: UserStoreManager userStoreManager = new UserStoreManager();
078: UserSessionManager sessionManager = new UserSessionManager(
079: permissions, userStoreManager);
080: LoginManager.init(sessionManager, userStoreManager);
081: // instanciate the thread manager
082: CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(
083: sessionManager, userStoreManager);
084:
085: // add a user to the session for the current thread
086: RoleManager.getInstance();
087:
088: InterceptorFactory.init(permissions, sessionManager,
089: userStoreManager);
090:
091: // add a new user object and add to the permission
092: Set set = new HashSet();
093: set.add("test");
094: UserSession user = new UserSession("test1", set);
095: permissions.putSession(
096: new Long(Thread.currentThread().getId()),
097: new ThreadPermissionSession(new Long(Thread
098: .currentThread().getId()), user));
099:
100: // init the naming director
101: NamingDirector.init(threadGroup);
102:
103: // instanciate the transaction director
104: TransactionDirector transactionDirector = TransactionDirector
105: .init();
106:
107: // init the database source
108: DBSourceManager.init();
109:
110: // check the hibernate util.
111: HibernateUtil result = HibernateUtil.getInstance(this
112: .getClass());
113: assertEquals(HibernateUtil.getInstance(this .getClass()), result);
114:
115: // retrieve the user transaction
116: Context context = new InitialContext();
117: UserTransaction ut = (UserTransaction) context
118: .lookup("java:comp/UserTransaction");
119:
120: ut.begin();
121:
122: Session session1 = HibernateUtil.getInstance(this .getClass())
123: .getSession();
124: Session session2 = HibernateUtil.getInstance(this.getClass())
125: .getSession();
126: assertEquals(session1, session2);
127:
128: ut.commit();
129: }
130:
131: }
|