File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/bidi/AuctionTest.java | File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/bidi/AuctionTest2.java | |||
Method name: void testLazy()
|
Method name: void testLazy()
|
|||
Number of AST nodes: 75 | Number of AST nodes: 76 | |||
1 | if ( getDialect() instanceof PostgreSQLDialect ) {↵ | 1 | if ( ! getDialect().supportsExistsInSelect() ) {↵ | |
2 | return; //doesn't like boolean=1↵ | 2 | reportSkip( "dialect does not support exist fragments in the select clause", "bidi support" );↵ | |
3 | return;↵ | |||
3 | }↵ | 4 | }↵ | |
4 | Session s = openSession();↵ | 5 | Session s = openSession();↵ | |
5 | Transaction t = s.beginTransaction();↵ | 6 | Transaction t = s.beginTransaction();↵ | |
6 | Auction a = new Auction();↵ | 7 | Auction a = new Auction();↵ | |
7 | a.setDescription( "an auction for something" );↵ | 8 | a.setDescription( "an auction for something" );↵ | |
8 | a.setEnd( new Date() );↵ | 9 | a.setEnd( new Date() );↵ | |
9 | Bid b = new Bid();↵ | 10 | Bid b = new Bid();↵ | |
10 | b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) );↵ | 11 | b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) );↵ | |
11 | b.setSuccessful( true );↵ | 12 | b.setSuccessful( true );↵ | |
12 | b.setDatetime( new Date() );↵ | 13 | b.setDatetime( new Date() );↵ | |
13 | b.setItem( a );↵ | 14 | b.setItem( a );↵ | |
14 | a.getBids().add( b );↵ | 15 | a.getBids().add( b );↵ | |
15 | a.setSuccessfulBid( b );↵ | 16 | a.setSuccessfulBid( b );↵ | |
16 | s.persist( b );↵ | 17 | s.persist( b );↵ | |
17 | t.commit();↵ | 18 | t.commit();↵ | |
18 | s.close();↵ | 19 | s.close();↵ | |
19 | Long aid = a.getId();↵ | 20 | Long aid = a.getId();↵ | |
20 | Long bid = b.getId();↵ | 21 | Long bid = b.getId();↵ | |
21 | s = openSession();↵ | 22 | s = openSession();↵ | |
22 | t = s.beginTransaction();↵ | 23 | t = s.beginTransaction();↵ | |
23 | b = ( Bid ) s.load( Bid.class, bid );↵ | 24 | b = ( Bid ) s.load( Bid.class, bid );↵ | |
24 | assertFalse( Hibernate.isInitialized( b ) );↵ | 25 | assertFalse( Hibernate.isInitialized( b ) );↵ | |
25 | a = ( Auction ) s.get( Auction.class, aid );↵ | 26 | a = ( Auction ) s.get( Auction.class, aid );↵ | |
26 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | 27 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | |
27 | assertTrue( Hibernate.isInitialized( a.getSuccessfulBid() ) );↵ | 28 | assertFalse( Hibernate.isInitialized( a.getSuccessfulBid() ) );↵ | |
28 | assertSame( a.getBids().iterator().next(), b );↵ | 29 | assertSame( a.getBids().iterator().next(), b );↵ | |
29 | assertSame( b, a.getSuccessfulBid() );↵ | 30 | assertSame( b, a.getSuccessfulBid() );↵ | |
30 | assertTrue( Hibernate.isInitialized( b ) );↵ | 31 | assertTrue( Hibernate.isInitialized( b ) );↵ | |
31 | assertTrue( b.isSuccessful() );↵ | 32 | assertTrue( b.isSuccessful() );↵ | |
32 | t.commit();↵ | 33 | t.commit();↵ | |
33 | s.close();↵ | 34 | s.close();↵ | |
34 | s = openSession();↵ | 35 | s = openSession();↵ | |
35 | t = s.beginTransaction();↵ | 36 | t = s.beginTransaction();↵ | |
36 | b = ( Bid ) s.load( Bid.class, bid );↵ | 37 | b = ( Bid ) s.load( Bid.class, bid );↵ | |
37 | assertFalse( Hibernate.isInitialized( b ) );↵ | 38 | assertFalse( Hibernate.isInitialized( b ) );↵ | |
38 | a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult();↵ | 39 | a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult();↵ | |
39 | assertTrue( Hibernate.isInitialized( b ) );↵ | 40 | assertTrue( Hibernate.isInitialized( b ) );↵ | |
40 | assertTrue( Hibernate.isInitialized( a.getBids() ) );↵ | 41 | assertTrue( Hibernate.isInitialized( a.getBids() ) );↵ | |
41 | assertSame( b, a.getSuccessfulBid() );↵ | 42 | assertSame( b, a.getSuccessfulBid() );↵ | |
42 | assertSame( a.getBids().iterator().next(), b );↵ | 43 | assertSame( a.getBids().iterator().next(), b );↵ | |
43 | assertTrue( b.isSuccessful() );↵ | 44 | assertTrue( b.isSuccessful() );↵ | |
44 | t.commit();↵ | 45 | t.commit();↵ | |
45 | s.close();↵ | 46 | s.close();↵ | |
46 | s = openSession();↵ | 47 | s = openSession();↵ | |
47 | t = s.beginTransaction();↵ | 48 | t = s.beginTransaction();↵ | |
48 | b = ( Bid ) s.load( Bid.class, bid );↵ | 49 | b = ( Bid ) s.load( Bid.class, bid );↵ | |
49 | a = ( Auction ) s.load( Auction.class, aid );↵ | 50 | a = ( Auction ) s.load( Auction.class, aid );↵ | |
50 | assertFalse( Hibernate.isInitialized( b ) );↵ | 51 | assertFalse( Hibernate.isInitialized( b ) );↵ | |
51 | assertFalse( Hibernate.isInitialized( a ) );↵ | 52 | assertFalse( Hibernate.isInitialized( a ) );↵ | |
52 | s.createQuery( "from Auction a left join fetch a.successfulBid" ).list();↵ | 53 | s.createQuery( "from Auction a left join fetch a.successfulBid" ).list();↵ | |
53 | assertTrue( Hibernate.isInitialized( b ) );↵ | 54 | assertTrue( Hibernate.isInitialized( b ) );↵ | |
54 | assertTrue( Hibernate.isInitialized( a ) );↵ | 55 | assertTrue( Hibernate.isInitialized( a ) );↵ | |
55 | assertSame( b, a.getSuccessfulBid() );↵ | 56 | assertSame( b, a.getSuccessfulBid() );↵ | |
56 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | 57 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | |
57 | assertSame( a.getBids().iterator().next(), b );↵ | 58 | assertSame( a.getBids().iterator().next(), b );↵ | |
58 | assertTrue( b.isSuccessful() );↵ | 59 | assertTrue( b.isSuccessful() );↵ | |
59 | t.commit();↵ | 60 | t.commit();↵ | |
60 | s.close();↵ | 61 | s.close();↵ | |
61 | s = openSession();↵ | 62 | s = openSession();↵ | |
62 | t = s.beginTransaction();↵ | 63 | t = s.beginTransaction();↵ | |
63 | b = ( Bid ) s.load( Bid.class, bid );↵ | 64 | b = ( Bid ) s.load( Bid.class, bid );↵ | |
64 | a = ( Auction ) s.load( Auction.class, aid );↵ | 65 | a = ( Auction ) s.load( Auction.class, aid );↵ | |
65 | assertFalse( Hibernate.isInitialized( b ) );↵ | 66 | assertFalse( Hibernate.isInitialized( b ) );↵ | |
66 | assertFalse( Hibernate.isInitialized( a ) );↵ | 67 | assertFalse( Hibernate.isInitialized( a ) );↵ | |
67 | assertSame( s.get( Bid.class, bid ), b );↵ | 68 | assertSame( s.get( Bid.class, bid ), b );↵ | |
68 | assertTrue( Hibernate.isInitialized( b ) );↵ | 69 | assertTrue( Hibernate.isInitialized( b ) );↵ | |
69 | assertSame( s.get( Auction.class, aid ), a );↵ | 70 | assertSame( s.get( Auction.class, aid ), a );↵ | |
70 | assertTrue( Hibernate.isInitialized( a ) );↵ | 71 | assertTrue( Hibernate.isInitialized( a ) );↵ | |
71 | assertSame( b, a.getSuccessfulBid() );↵ | 72 | assertSame( b, a.getSuccessfulBid() );↵ | |
72 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | 73 | assertFalse( Hibernate.isInitialized( a.getBids() ) );↵ | |
73 | assertSame( a.getBids().iterator().next(), b );↵ | 74 | assertSame( a.getBids().iterator().next(), b );↵ | |
74 | assertTrue( b.isSuccessful() );↵ | 75 | assertTrue( b.isSuccessful() );↵ | |
75 | t.commit();↵ | 76 | t.commit();↵ | |
76 | s.close(); | 77 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.4 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 455 |
Number of mapped statements | 75 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 205.6 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | if (getDialect() instanceof PostgreSQLDialect) |
| 1 | if (!getDialect().supportsExistsInSelect()) | ||||||||||||||
| 2 | reportSkip("dialect does not support exist fragments in the select clause", "bidi support"); | ||||||||||||||||
2 | return; | 3 | return; | |||||||||||||||
3 | Session s = openSession(); | 4 | Session s = openSession(); | |||||||||||||||
4 | Transaction t = s.beginTransaction(); | 5 | Transaction t = s.beginTransaction(); | |||||||||||||||
5 | Auction a = new Auction(); | 6 | Auction a = new Auction(); | |||||||||||||||
6 | a.setDescription("an auction for something"); | 7 | a.setDescription("an auction for something"); | |||||||||||||||
7 | a.setEnd(new Date()); | 8 | a.setEnd(new Date()); | |||||||||||||||
8 | Bid b = new Bid(); | 9 | Bid b = new Bid(); | |||||||||||||||
9 | b.setAmount(new BigDecimal(123.34).setScale(19, BigDecimal.ROUND_DOWN)); | 10 | b.setAmount(new BigDecimal(123.34).setScale(19, BigDecimal.ROUND_DOWN)); | |||||||||||||||
10 | b.setSuccessful(true); | 11 | b.setSuccessful(true); | |||||||||||||||
11 | b.setDatetime(new Date()); | 12 | b.setDatetime(new Date()); | |||||||||||||||
12 | b.setItem(a); | 13 | b.setItem(a); | |||||||||||||||
13 | a.getBids().add(b); | 14 | a.getBids().add(b); | |||||||||||||||
14 | a.setSuccessfulBid(b); | 15 | a.setSuccessfulBid(b); | |||||||||||||||
15 | s.persist(b); | 16 | s.persist(b); | |||||||||||||||
16 | t.commit(); | 17 | t.commit(); | |||||||||||||||
17 | s.close(); | 18 | s.close(); | |||||||||||||||
18 | Long aid = a.getId(); | 19 | Long aid = a.getId(); | |||||||||||||||
19 | Long bid = b.getId(); | 20 | Long bid = b.getId(); | |||||||||||||||
20 | s = openSession(); | 21 | s = openSession(); | |||||||||||||||
21 | t = s.beginTransaction(); | 22 | t = s.beginTransaction(); | |||||||||||||||
22 | b = (Bid)s.load(Bid.class, bid); | 23 | b = (Bid)s.load(Bid.class, bid); | |||||||||||||||
23 | assertFalse(Hibernate.isInitialized(b)); | 24 | assertFalse(Hibernate.isInitialized(b)); | |||||||||||||||
24 | a = (Auction)s.get(Auction.class, aid); | 25 | a = (Auction)s.get(Auction.class, aid); | |||||||||||||||
25 | assertFalse(Hibernate.isInitialized(a.getBids())); | 26 | assertFalse(Hibernate.isInitialized(a.getBids())); | |||||||||||||||
26 | assertTrue(Hibernate.isInitialized(a.getSuccessfulBid())); |
| 27 | assertFalse(Hibernate.isInitialized(a.getSuccessfulBid())); | ||||||||||||||
27 | assertSame(a.getBids().iterator().next(), b); | 28 | assertSame(a.getBids().iterator().next(), b); | |||||||||||||||
28 | assertSame(b, a.getSuccessfulBid()); | 29 | assertSame(b, a.getSuccessfulBid()); | |||||||||||||||
29 | assertTrue(Hibernate.isInitialized(b)); | 30 | assertTrue(Hibernate.isInitialized(b)); | |||||||||||||||
30 | assertTrue(b.isSuccessful()); | 31 | assertTrue(b.isSuccessful()); | |||||||||||||||
31 | t.commit(); | 32 | t.commit(); | |||||||||||||||
32 | s.close(); | 33 | s.close(); | |||||||||||||||
33 | s = openSession(); | 34 | s = openSession(); | |||||||||||||||
34 | t = s.beginTransaction(); | 35 | t = s.beginTransaction(); | |||||||||||||||
35 | b = (Bid)s.load(Bid.class, bid); | 36 | b = (Bid)s.load(Bid.class, bid); | |||||||||||||||
36 | assertFalse(Hibernate.isInitialized(b)); | 37 | assertFalse(Hibernate.isInitialized(b)); | |||||||||||||||
37 | a = (Auction)s.createQuery("from Auction a left join fetch a.bids").uniqueResult(); | 38 | a = (Auction)s.createQuery("from Auction a left join fetch a.bids").uniqueResult(); | |||||||||||||||
38 | assertTrue(Hibernate.isInitialized(b)); | 39 | assertTrue(Hibernate.isInitialized(b)); | |||||||||||||||
39 | assertTrue(Hibernate.isInitialized(a.getBids())); | 40 | assertTrue(Hibernate.isInitialized(a.getBids())); | |||||||||||||||
40 | assertSame(b, a.getSuccessfulBid()); | 41 | assertSame(b, a.getSuccessfulBid()); | |||||||||||||||
41 | assertSame(a.getBids().iterator().next(), b); | 42 | assertSame(a.getBids().iterator().next(), b); | |||||||||||||||
42 | assertTrue(b.isSuccessful()); | 43 | assertTrue(b.isSuccessful()); | |||||||||||||||
43 | t.commit(); | 44 | t.commit(); | |||||||||||||||
44 | s.close(); | 45 | s.close(); | |||||||||||||||
45 | s = openSession(); | 46 | s = openSession(); | |||||||||||||||
46 | t = s.beginTransaction(); | 47 | t = s.beginTransaction(); | |||||||||||||||
47 | b = (Bid)s.load(Bid.class, bid); | 48 | b = (Bid)s.load(Bid.class, bid); | |||||||||||||||
48 | a = (Auction)s.load(Auction.class, aid); | 49 | a = (Auction)s.load(Auction.class, aid); | |||||||||||||||
49 | assertFalse(Hibernate.isInitialized(b)); | 50 | assertFalse(Hibernate.isInitialized(b)); | |||||||||||||||
50 | assertFalse(Hibernate.isInitialized(a)); | 51 | assertFalse(Hibernate.isInitialized(a)); | |||||||||||||||
51 | s.createQuery("from Auction a left join fetch a.successfulBid").list(); | 52 | s.createQuery("from Auction a left join fetch a.successfulBid").list(); | |||||||||||||||
52 | assertTrue(Hibernate.isInitialized(b)); | 53 | assertTrue(Hibernate.isInitialized(b)); | |||||||||||||||
53 | assertTrue(Hibernate.isInitialized(a)); | 54 | assertTrue(Hibernate.isInitialized(a)); | |||||||||||||||
54 | assertSame(b, a.getSuccessfulBid()); | 55 | assertSame(b, a.getSuccessfulBid()); | |||||||||||||||
55 | assertFalse(Hibernate.isInitialized(a.getBids())); | 56 | assertFalse(Hibernate.isInitialized(a.getBids())); | |||||||||||||||
56 | assertSame(a.getBids().iterator().next(), b); | 57 | assertSame(a.getBids().iterator().next(), b); | |||||||||||||||
57 | assertTrue(b.isSuccessful()); | 58 | assertTrue(b.isSuccessful()); | |||||||||||||||
58 | t.commit(); | 59 | t.commit(); | |||||||||||||||
59 | s.close(); | 60 | s.close(); | |||||||||||||||
60 | s = openSession(); | 61 | s = openSession(); | |||||||||||||||
61 | t = s.beginTransaction(); | 62 | t = s.beginTransaction(); | |||||||||||||||
62 | b = (Bid)s.load(Bid.class, bid); | 63 | b = (Bid)s.load(Bid.class, bid); | |||||||||||||||
63 | a = (Auction)s.load(Auction.class, aid); | 64 | a = (Auction)s.load(Auction.class, aid); | |||||||||||||||
64 | assertFalse(Hibernate.isInitialized(b)); | 65 | assertFalse(Hibernate.isInitialized(b)); | |||||||||||||||
65 | assertFalse(Hibernate.isInitialized(a)); | 66 | assertFalse(Hibernate.isInitialized(a)); | |||||||||||||||
66 | assertSame(s.get(Bid.class, bid), b); | 67 | assertSame(s.get(Bid.class, bid), b); | |||||||||||||||
67 | assertTrue(Hibernate.isInitialized(b)); | 68 | assertTrue(Hibernate.isInitialized(b)); | |||||||||||||||
68 | assertSame(s.get(Auction.class, aid), a); | 69 | assertSame(s.get(Auction.class, aid), a); | |||||||||||||||
69 | assertTrue(Hibernate.isInitialized(a)); | 70 | assertTrue(Hibernate.isInitialized(a)); | |||||||||||||||
70 | assertSame(b, a.getSuccessfulBid()); | 71 | assertSame(b, a.getSuccessfulBid()); | |||||||||||||||
71 | assertFalse(Hibernate.isInitialized(a.getBids())); | 72 | assertFalse(Hibernate.isInitialized(a.getBids())); | |||||||||||||||
72 | assertSame(a.getBids().iterator().next(), b); | 73 | assertSame(a.getBids().iterator().next(), b); | |||||||||||||||
73 | assertTrue(b.isSuccessful()); | 74 | assertTrue(b.isSuccessful()); | |||||||||||||||
74 | t.commit(); | 75 | t.commit(); | |||||||||||||||
75 | s.close(); | 76 | s.close(); |
Row | Violation |
---|---|
1 | Expression assertTrue(Hibernate.isInitialized(a.getSuccessfulBid())) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression assertFalse(Hibernate.isInitialized(a.getSuccessfulBid())) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression assertTrue(Hibernate.isInitialized(a.getSuccessfulBid())) is a void method call, and thus it cannot be parameterized |
4 | Expression assertFalse(Hibernate.isInitialized(a.getSuccessfulBid())) is a void method call, and thus it cannot be parameterized |