package org.springmodules.jcr.jackrabbit; import java.util.ArrayList; import java.util.List; import javax.jcr.Session; import javax.transaction.xa.XAResource; import junit.framework.TestCase; import org.apache.jackrabbit.api.XASession; import org.easymock.MockControl; import org.springmodules.jcr.JcrInterceptor; import org.springmodules.jcr.SessionFactory; import org.springmodules.jcr.SessionHolder; import org.springmodules.jcr.SessionHolderProvider; import org.springmodules.jcr.jackrabbit.support.JackRabbitSessionHolderProvider; import org.springmodules.jcr.support.ListSessionHolderProviderManager; public class JcrInterceptorTests extends TestCase { /* * Test method for 'org.springmodules.jcr.jackrabbit.JcrInterceptor.createSessionHolder(Session)' */ public void testCreateSessionHolder() throws Exception { MockControl sfCtrl = MockControl.createControl(SessionFactory.class); SessionFactory sf = (SessionFactory) sfCtrl.getMock(); MockControl sessionControl = MockControl.createControl(Session.class); MockControl xaSessionControl = MockControl.createControl(XASession.class); XASession xaSession = (XASession)xaSessionControl.getMock(); MockControl xaResCtrl = MockControl.createControl(XAResource.class); XAResource xaRes = (XAResource)xaResCtrl.getMock(); xaSessionControl.expectAndReturn(xaSession.getXAResource(), xaRes); xaSessionControl.replay(); sfCtrl.replay(); sessionControl.replay(); xaResCtrl.replay(); JcrInterceptor interceptor = new JcrInterceptor(); ListSessionHolderProviderManager manager = new ListSessionHolderProviderManager(); List providers = new ArrayList(); SessionHolderProvider provider = new JackRabbitSessionHolderProvider(); providers.add(provider); manager.setProviders(providers); interceptor.setSessionFactory(sf); interceptor.afterPropertiesSet(); SessionHolder holder = null; holder = provider.createSessionHolder(xaSession); assertSame(xaSession, holder.getSession()); xaSessionControl.verify(); sessionControl.verify(); xaResCtrl.verify(); sfCtrl.verify(); } }