KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hibernate > test > bidi > AuctionTest


1 //$Id: AuctionTest.java,v 1.5 2005/06/19 21:05:42 oneovthafew Exp $
2
package org.hibernate.test.bidi;
3
4 import java.math.BigDecimal JavaDoc;
5 import java.util.Date JavaDoc;
6
7 import junit.framework.Test;
8 import junit.framework.TestSuite;
9
10 import org.hibernate.Hibernate;
11 import org.hibernate.Session;
12 import org.hibernate.Transaction;
13 import org.hibernate.dialect.PostgreSQLDialect;
14 import org.hibernate.test.TestCase;
15
16 /**
17  * @author Gavin King
18  */

19 public class AuctionTest extends TestCase {
20     
21     public AuctionTest(String JavaDoc str) {
22         super(str);
23     }
24     
25     public void testLazy() {
26         if ( getDialect() instanceof PostgreSQLDialect ) return; //doesn't like boolean=1
27

28         Session s = openSession();
29         Transaction t = s.beginTransaction();
30         Auction a = new Auction();
31         a.setDescription("an auction for something");
32         a.setEnd( new Date JavaDoc() );
33         Bid b = new Bid();
34         b.setAmount( new BigDecimal JavaDoc(123.34) );
35         b.setSuccessful(true);
36         b.setDatetime( new Date JavaDoc() );
37         b.setItem(a);
38         a.getBids().add(b);
39         a.setSuccessfulBid(b);
40         s.persist(b);
41         t.commit();
42         s.close();
43         
44         Long JavaDoc aid = a.getId();
45         Long JavaDoc bid = b.getId();
46         
47         s = openSession();
48         t = s.beginTransaction();
49         b = (Bid) s.load( Bid.class, bid );
50         assertFalse( Hibernate.isInitialized(b) );
51         a = (Auction) s.get( Auction.class, aid );
52         assertFalse( Hibernate.isInitialized( a.getBids() ) );
53         assertTrue( Hibernate.isInitialized( a.getSuccessfulBid() ) );
54         assertSame( a.getBids().iterator().next(), b );
55         assertSame( b, a.getSuccessfulBid() );
56         assertTrue( Hibernate.isInitialized(b) );
57         assertTrue( b.isSuccessful() );
58         t.commit();
59         s.close();
60
61         s = openSession();
62         t = s.beginTransaction();
63         b = (Bid) s.load( Bid.class, bid );
64         assertFalse( Hibernate.isInitialized(b) );
65         a = (Auction) s.createQuery("from Auction a left join fetch a.bids").uniqueResult();
66         assertTrue( Hibernate.isInitialized(b) );
67         assertTrue( Hibernate.isInitialized( a.getBids() ) );
68         assertSame( b, a.getSuccessfulBid() );
69         assertSame( a.getBids().iterator().next(), b );
70         assertTrue( b.isSuccessful() );
71         t.commit();
72         s.close();
73
74         s = openSession();
75         t = s.beginTransaction();
76         b = (Bid) s.load( Bid.class, bid );
77         a = (Auction) s.load( Auction.class, aid );
78         assertFalse( Hibernate.isInitialized(b) );
79         assertFalse( Hibernate.isInitialized(a) );
80         s.createQuery("from Auction a left join fetch a.successfulBid").list();
81         assertTrue( Hibernate.isInitialized(b) );
82         assertTrue( Hibernate.isInitialized(a) );
83         assertSame( b, a.getSuccessfulBid() );
84         assertFalse( Hibernate.isInitialized( a.getBids() ) );
85         assertSame( a.getBids().iterator().next(), b );
86         assertTrue( b.isSuccessful() );
87         t.commit();
88         s.close();
89
90         s = openSession();
91         t = s.beginTransaction();
92         b = (Bid) s.load( Bid.class, bid );
93         a = (Auction) s.load( Auction.class, aid );
94         assertFalse( Hibernate.isInitialized(b) );
95         assertFalse( Hibernate.isInitialized(a) );
96         assertSame( s.get( Bid.class, bid ), b );
97         assertTrue( Hibernate.isInitialized(b) );
98         assertSame( s.get(Auction.class, aid ), a );
99         assertTrue( Hibernate.isInitialized(a) );
100         assertSame( b, a.getSuccessfulBid() );
101         assertFalse( Hibernate.isInitialized( a.getBids() ) );
102         assertSame( a.getBids().iterator().next(), b );
103         assertTrue( b.isSuccessful() );
104         t.commit();
105         s.close();
106     }
107     
108     protected String JavaDoc[] getMappings() {
109         return new String JavaDoc[] { "bidi/Auction.hbm.xml" };
110     }
111
112     public static Test suite() {
113         return new TestSuite(AuctionTest.class);
114     }
115
116 }
117
118
Popular Tags