[hibernate-commits] Hibernate SVN: r11355 - trunk/HibernateExt/search/src/test/org/hibernate/search/test/session.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Mar 28 14:20:54 EDT 2007


Author: epbernard
Date: 2007-03-28 14:20:54 -0400 (Wed, 28 Mar 2007)
New Revision: 11355

Added:
   trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java
   trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java
Log:
Mote test on Session wrappers

Added: trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java
===================================================================
--- trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java	                        (rev 0)
+++ trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java	2007-03-28 18:20:54 UTC (rev 11355)
@@ -0,0 +1,34 @@
+//$Id: $
+package org.hibernate.search.test.session;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationHandler;
+import java.io.Serializable;
+
+import org.hibernate.Session;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DelegationWrapper implements InvocationHandler, Serializable {
+	Object realSession;
+
+	public DelegationWrapper(Session session) {
+		this.realSession = session;
+	}
+
+	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+		try {
+			return method.invoke( realSession, args );
+		}
+		catch (InvocationTargetException e) {
+			if ( e.getTargetException() instanceof RuntimeException ) {
+				throw (RuntimeException) e.getTargetException();
+			}
+			else {
+				throw e;
+			}
+		}
+	}
+}

Added: trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java
===================================================================
--- trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java	                        (rev 0)
+++ trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java	2007-03-28 18:20:54 UTC (rev 11355)
@@ -0,0 +1,46 @@
+//$Id: $
+package org.hibernate.search.test.session;
+
+import java.lang.reflect.Proxy;
+
+import org.hibernate.search.test.SearchTestCase;
+import org.hibernate.search.Search;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.Session;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class SessionTest extends SearchTestCase {
+
+	private static final Class[] SESS_PROXY_INTERFACES = new Class[] {
+			org.hibernate.classic.Session.class,
+	        org.hibernate.engine.SessionImplementor.class,
+	        org.hibernate.jdbc.JDBCContext.Context.class,
+	        org.hibernate.event.EventSource.class
+	};
+
+	public void testSessionWrapper() throws Exception {
+		Session s = openSession( );
+		DelegationWrapper wrapper = new DelegationWrapper( s );
+		Session wrapped = (Session) Proxy.newProxyInstance(
+				org.hibernate.classic.Session.class.getClassLoader(),
+		        SESS_PROXY_INTERFACES,
+		        wrapper
+			);
+		try {
+			FullTextSession fts = Search.createFullTextSession( wrapped );
+		}
+		catch( ClassCastException e ) {
+			e.printStackTrace( );
+			fail(e.toString());
+		}
+		wrapped.close();
+	}
+
+	protected Class[] getMappings() {
+		return new Class[] {
+				Email.class
+		};
+	}
+}




More information about the hibernate-commits mailing list