1 4 package com.tctest.spring.integrationtests.tests; 5 6 import org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter; 7 import org.springframework.web.servlet.DispatcherServlet; 8 9 import com.tc.test.server.AbstractDBServer; 10 import com.tctest.spring.bean.IHibernateBean; 11 import com.tctest.spring.integrationtests.framework.AbstractTwoServerDeploymentTest; 12 import com.tctest.spring.integrationtests.framework.DeploymentBuilder; 13 import com.tctest.spring.integrationtests.framework.ProxyBuilder; 14 import com.tctest.spring.integrationtests.framework.ServerManagerUtil; 15 16 import java.util.HashMap ; 17 import java.util.Map ; 18 19 import junit.framework.Test; 20 21 22 25 public class HibernateTest extends AbstractTwoServerDeploymentTest { 26 private static IHibernateBean hibernateBean1; 27 private static IHibernateBean hibernateBean2; 28 29 public HibernateTest() { 30 super(); 31 this.disableTestUntil("testLazyObj", "2010-03-01"); 32 this.disableTestUntil("testLazyChild", "2010-03-01"); 33 } 34 35 public void testSharePersitentObj() throws Exception { 36 hibernateBean1.sharePersistentObj(); 37 assertEquals("Failed to share persistent object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 38 assertEquals("Failed to share persistent object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 39 } 40 41 public void testShareDetachedObj() throws Exception { 42 hibernateBean1.shareDetachedObj(); 43 assertEquals("Failed to share detached object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 44 assertEquals("Failed to share detached object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 45 } 46 47 public void testLazyObj() throws Exception { 48 hibernateBean1.shareLazyObj(); 49 assertEquals("Failed to share lazy object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 50 assertEquals("Failed to share lazy object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 51 } 52 53 public void testLazyChild() throws Exception { 54 hibernateBean1.shareObjWithLazyChild(); 55 assertEquals("Failed to share lazy object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 56 assertEquals("Failed to share lazy object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 57 } 58 59 public void testAssociateDetachedObject() throws Exception { 60 hibernateBean1.sharePersistentObj(); 61 hibernateBean2.associateSharedObj(); 62 63 assertEquals("Failed to share lazy object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 64 assertEquals("Failed to share lazy object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 65 66 hibernateBean1.shareDetachedObj(); 67 hibernateBean2.associateSharedObj(); 68 69 assertEquals("Failed to share lazy object", hibernateBean1.getSharedId(), hibernateBean2.getSharedId()); 70 assertEquals("Failed to share lazy object", hibernateBean1.getSharedFld(), hibernateBean2.getSharedFld()); 71 } 72 73 74 private static class HibernateTestSetup extends TwoSvrSetup { 75 private static final int DB_PORT = 0; private static final String DB_NAME = "testdb"; 77 private static final String APP_NAME = "test-hibernate"; 78 private static final String REMOTE_SERVICE_NAME = "hibernateservice"; 79 80 81 private HibernateTestSetup() { 82 super(HibernateTest.class, "/tc-config-files/hibernate-tc-config.xml", APP_NAME); 83 } 84 85 protected void setUp() throws Exception { 86 try { 87 sm = ServerManagerUtil.startAndBind(HibernateTest.class, isWithPersistentStore()); 88 AbstractDBServer dbSvr = sm.makeDBServer("HSQL", DB_NAME, DB_PORT); 89 dbSvr.start(); 90 setUpTwoWebAppServers(); 91 92 Map initCtx = new HashMap (); 93 initCtx.put(ProxyBuilder.EXPORTER_TYPE_KEY, HttpInvokerServiceExporter.class); 94 hibernateBean1 = (IHibernateBean) server1.getProxy(IHibernateBean.class, APP_NAME + "/http/" + REMOTE_SERVICE_NAME, initCtx); 95 hibernateBean2 = (IHibernateBean) server2.getProxy(IHibernateBean.class, APP_NAME + "/http/" + REMOTE_SERVICE_NAME, initCtx); 96 } catch(Exception ex) { 97 ex.printStackTrace(); throw ex; 98 } 99 } 100 101 protected void configureWar(DeploymentBuilder builder) { 102 builder.addBeanDefinitionFile("classpath:/com/tctest/spring/beanfactory-hibernate.xml"); 103 builder.addRemoteService(HttpInvokerServiceExporter.class,REMOTE_SERVICE_NAME, "hibernate-bean", IHibernateBean.class); 104 builder.setDispatcherServlet("httpinvoker", "/http/*", DispatcherServlet.class, null, true); 105 builder.addDirectoryOrJARContainingClass(org.hibernate.Session.class); 106 builder.addDirectoryOrJARContainingClass(org.dom4j.DocumentException.class); 107 builder.addDirectoryOrJARContainingClass(org.hsqldb.jdbcDriver.class); 109 builder.addDirectoryOrJARContainingClass(net.sf.ehcache.CacheException.class); 110 builder.addDirectoryOrJARContainingClass(net.sf.cglib.beans.BulkBeanException.class); 111 builder.addDirectoryOrJARContainingClass(org.apache.commons.dbcp.BasicDataSource.class); 112 builder.addDirectoryOrJARContainingClass(org.apache.commons.pool.impl.GenericObjectPool.class); 113 builder.addDirectoryOrJARContainingClass(org.apache.commons.collections.SequencedHashMap.class); 114 } 117 } 118 119 public static Test suite() { 120 return new HibernateTestSetup(); 121 } 122 123 } 124 | Popular Tags |