1   package org.controlhaus.hibernate;
2   
3   import java.io.File;
4   import java.lang.reflect.Method;
5   import java.util.List;
6   
7   import junit.framework.TestCase;
8   import net.sf.hibernate.Session;
9   import net.sf.hibernate.SessionFactory;
10  import net.sf.hibernate.Transaction;
11  
12  import org.apache.beehive.controls.api.bean.Control;
13  import org.apache.beehive.controls.api.context.ControlBeanContext;
14  import org.apache.beehive.controls.runtime.bean.ControlContainerContext;
15  import org.controlhaus.hibernate.util.AbstractHibernateTest;
16  import org.controlhaus.hibernate.HibernateControl.ManagedTransactions;
17  
18  /***
19   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
20   * @since Oct 28, 2004
21   */
22  public class HibernateControlTest
23      extends AbstractHibernateTest
24  {
25      @Control HibernateControl hib;
26      
27      @ManagedTransactions(true)
28      @Control HibernateControl txHib;
29  
30      public void setUp() throws Exception
31      {
32          System.setProperty(SETUP_SQL, 
33                  new File("./src/sql/setup.sql").getAbsolutePath());
34          System.setProperty(TEARDOWN_SQL, 
35                  new File("./src/sql/teardown.sql").getAbsolutePath());
36          super.setUp();
37      }
38      
39      public void testControl() 
40          throws Exception
41      {
42          assertNotNull(hib);
43  
44          SessionFactory factory = hib.getSessionFactory();
45          assertNotNull(factory);
46          
47          Session session = hib.getSession();
48          Transaction t = hib.getTransaction();
49          assertNull(t);
50          
51          session.save(new Parent());
52  
53          session.flush();
54          hib.closeSession();
55          
56          Session session2 = hib.getSession();
57          assertNotSame(session, session2);
58          
59          List results = session2.find("select from " + Parent.class.getName());
60          assertEquals(1, results.size());
61      }
62  
63      public void testControlTXs() 
64          throws Exception
65      {
66          assertNotNull(txHib);
67  
68          Session s = txHib.getSession();
69          Transaction t = txHib.getTransaction();
70          assertNotNull(t);
71  
72          s.save(new Parent());
73  
74          s.flush();
75  
76          List results = s.find("select from " + Parent.class.getName());
77          assertEquals(1, results.size());
78      }
79  }