KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > spring > integrationtests > tests > HibernateTest


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

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 JavaDoc;
17 import java.util.Map JavaDoc;
18
19 import junit.framework.Test;
20
21
22 /**
23  *
24  */

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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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; // will use the default port - 9001
76
private static final String JavaDoc DB_NAME = "testdb";
77     private static final String JavaDoc APP_NAME = "test-hibernate";
78     private static final String JavaDoc 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 JavaDoc {
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 JavaDoc initCtx = new HashMap JavaDoc();
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 JavaDoc 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.apache.xerces.jaxp.SAXParserFactoryImpl.class);
108
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       // builder.addDirectoryOrJARContainingClass(com.tc.aspectwerkz.exception.WrappedRuntimeException.class);
115
// builder.addDirectoryOrJARContainingClass(org.xml.sax.ext.Attributes2.class);
116
}
117   }
118
119   public static Test suite() {
120     return new HibernateTestSetup();
121   }
122
123 }
124
Popular Tags