Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/hibernate/test/stateless/StatelessSessionTest.java


1   //$Id: StatelessSessionTest.java 9705 2006-03-28 19:59:31Z steve.ebersole@jboss.com $
2   package org.hibernate.test.stateless;
3   
4   import java.util.Date;
5   
6   import junit.framework.Test;
7   import junit.framework.TestSuite;
8   
9   import org.hibernate.ScrollMode;
10  import org.hibernate.ScrollableResults;
11  import org.hibernate.StatelessSession;
12  import org.hibernate.Transaction;
13  import org.hibernate.test.TestCase;
14  
15  /**
16   * @author Gavin King
17   */
18  public class StatelessSessionTest extends TestCase {
19    
20    public StatelessSessionTest(String str) {
21      super(str);
22    }
23  
24    public void testCreateUpdateReadDelete() {
25      StatelessSession ss = getSessions().openStatelessSession();
26      Transaction tx = ss.beginTransaction();
27      Document doc = new Document("blah blah blah", "Blahs");
28      ss.insert(doc);
29      assertNotNull( doc.getName() );
30      Date initVersion = doc.getLastModified();
31      assertNotNull( initVersion );
32      tx.commit();
33      
34      tx = ss.beginTransaction();
35      doc.setText("blah blah blah .... blah");
36      ss.update(doc);
37      assertNotNull( doc.getLastModified() );
38      assertNotSame( doc.getLastModified(), initVersion );
39      tx.commit();
40      
41      tx = ss.beginTransaction();
42      doc.setText("blah blah blah .... blah blay");
43      ss.update(doc);
44      tx.commit();
45      
46      Document doc2 = (Document) ss.get(Document.class.getName(), "Blahs");
47      assertEquals("Blahs", doc2.getName());
48      assertEquals(doc.getText(), doc2.getText());
49          
50      doc2 = (Document) ss.createQuery("from Document where text is not null").uniqueResult();
51      assertEquals("Blahs", doc2.getName());
52      assertEquals(doc.getText(), doc2.getText());
53      
54      ScrollableResults sr = ss.createQuery("from Document where text is not null")
55        .scroll(ScrollMode.FORWARD_ONLY);
56      sr.next();
57      doc2 = (Document) sr.get(0);
58      sr.close();
59      assertEquals("Blahs", doc2.getName());
60      assertEquals(doc.getText(), doc2.getText());
61          
62      doc2 = (Document) ss.createSQLQuery("select * from Document")
63        .addEntity(Document.class)
64        .uniqueResult();
65      assertEquals("Blahs", doc2.getName());
66      assertEquals(doc.getText(), doc2.getText());
67          
68      doc2 = (Document) ss.createCriteria(Document.class).uniqueResult();
69      assertEquals("Blahs", doc2.getName());
70      assertEquals(doc.getText(), doc2.getText());
71      
72      sr = ss.createCriteria(Document.class).scroll(ScrollMode.FORWARD_ONLY);
73      sr.next();
74      doc2 = (Document) sr.get(0);
75      sr.close();
76      assertEquals("Blahs", doc2.getName());
77      assertEquals(doc.getText(), doc2.getText());
78  
79      tx = ss.beginTransaction();
80      ss.delete(doc);
81      tx.commit();
82      ss.close();
83  
84    }
85  
86    public void testHqlBulk() {
87      StatelessSession ss = getSessions().openStatelessSession();
88      Transaction tx = ss.beginTransaction();
89      Document doc = new Document("blah blah blah", "Blahs");
90      ss.insert(doc);
91      Paper paper = new Paper();
92      paper.setColor( "White" );
93      ss.insert(paper);
94      tx.commit();
95  
96      tx = ss.beginTransaction();
97      int count = ss.createQuery( "update Document set name = :newName where name = :oldName" )
98          .setString( "newName", "Foos" )
99          .setString( "oldName", "Blahs" )
100         .executeUpdate();
101     assertEquals( "hql-update on stateless session", 1, count );
102     count = ss.createQuery( "update Paper set color = :newColor" )
103         .setString( "newColor", "Goldenrod" )
104         .executeUpdate();
105     assertEquals( "hql-update on stateless session", 1, count );
106     tx.commit();
107 
108     tx = ss.beginTransaction();
109     count = ss.createQuery( "delete Document" ).executeUpdate();
110     assertEquals( "hql-delete on stateless session", 1, count );
111     count = ss.createQuery( "delete Paper" ).executeUpdate();
112     assertEquals( "hql-delete on stateless session", 1, count );
113     tx.commit();
114     ss.close();
115   }
116 
117   public void testInitId() {
118     StatelessSession ss = getSessions().openStatelessSession();
119     Transaction tx = ss.beginTransaction();
120     Paper paper = new Paper();
121     paper.setColor( "White" );
122     ss.insert(paper);
123     assertNotNull( paper.getId() );
124     tx.commit();
125 
126     tx = ss.beginTransaction();
127     ss.delete( ss.get( Paper.class, paper.getId() ) );
128     tx.commit();
129     ss.close();
130   }
131 
132   public void testRefresh() {
133     StatelessSession ss = getSessions().openStatelessSession();
134     Transaction tx = ss.beginTransaction();
135     Paper paper = new Paper();
136     paper.setColor( "whtie" );
137     ss.insert( paper );
138     tx.commit();
139     ss.close();
140 
141     ss = getSessions().openStatelessSession();
142     tx = ss.beginTransaction();
143     Paper p2 = ( Paper ) ss.get( Paper.class, paper.getId() );
144     p2.setColor( "White" );
145     ss.update( p2 );
146     tx.commit();
147     ss.close();
148 
149     ss = getSessions().openStatelessSession();
150     tx = ss.beginTransaction();
151     assertEquals( "whtie", paper.getColor() );
152     ss.refresh( paper );
153     assertEquals( "White", paper.getColor() );
154     ss.delete( paper );
155     tx.commit();
156     ss.close();
157   }
158   
159   
160   protected String[] getMappings() {
161     return new String[] { "stateless/Document.hbm.xml" };
162   }
163 
164   public static Test suite() {
165     return new TestSuite(StatelessSessionTest.class);
166   }
167 
168 }
169