public class HiLoTableTest extends FunctionalTestCase { public HiLoTableTest(String string) { super( string ); } public String[] getMappings() { return new String[] { "idgen/enhanced/table/HiLo.hbm.xml" }; } public static Test suite() { return new FunctionalTestClassTestSuite( HiLoTableTest.class ); } public void testNormalBoundary() { EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() ); assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() ); TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator(); assertClassAssignability( OptimizerFactory.HiLoOptimizer.class, generator.getOptimizer().getClass() ); OptimizerFactory.HiLoOptimizer optimizer = ( OptimizerFactory.HiLoOptimizer ) generator.getOptimizer(); int increment = optimizer.getIncrementSize(); Entity[] entities = new Entity[ increment + 1 ]; Session s = openSession(); s.beginTransaction(); for ( int i = 0; i < increment; i++ ) { entities[i] = new Entity( "" + ( i + 1 ) ); s.save( entities[i] ); assertEquals( 1, generator.getTableAccessCount() ); // initialization assertEquals( 1, optimizer.getLastSourceValue() ); // initialization assertEquals( i + 1, optimizer.getLastValue() ); assertEquals( increment + 1, optimizer.getHiValue() ); } // now force a "clock over" entities[ increment ] = new Entity( "" + increment ); s.save( entities[ increment ] ); assertEquals( 2, generator.getTableAccessCount() ); // initialization assertEquals( 2, optimizer.getLastSourceValue() ); // initialization assertEquals( increment + 1, optimizer.getLastValue() ); assertEquals( ( increment * 2 ) + 1, optimizer.getHiValue() ); s.getTransaction().commit(); s.beginTransaction(); for ( int i = 0; i < entities.length; i++ ) { assertEquals( i + 1, entities[i].getId().intValue() ); s.delete( entities[i] ); } s.getTransaction().commit(); s.close();
public class PooledTableTest extends FunctionalTestCase { public PooledTableTest(String string) { super( string ); } public String[] getMappings() { return new String[] { "idgen/enhanced/table/Pooled.hbm.xml" }; } public static Test suite() { return new FunctionalTestClassTestSuite( PooledTableTest.class ); } public void testNormalBoundary() { EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() ); assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() ); TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator(); assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() ); OptimizerFactory.PooledOptimizer optimizer = ( OptimizerFactory.PooledOptimizer ) generator.getOptimizer(); int increment = optimizer.getIncrementSize(); Entity[] entities = new Entity[ increment + 1 ]; Session s = openSession(); s.beginTransaction(); for ( int i = 0; i < increment; i++ ) { entities[i] = new Entity( "" + ( i + 1 ) ); s.save( entities[i] ); assertEquals( 2, generator.getTableAccessCount() ); // initialization calls seq twice assertEquals( increment + 1, optimizer.getLastSourceValue() ); // initialization calls seq twice assertEquals( i + 1, optimizer.getLastValue() ); assertEquals( increment + 1, optimizer.getLastSourceValue() ); } // now force a "clock over" entities[ increment ] = new Entity( "" + increment ); s.save( entities[ increment ] ); assertEquals( 3, generator.getTableAccessCount() ); // initialization (2) + clock over assertEquals( ( increment * 2 ) + 1, optimizer.getLastSourceValue() ); // initialization (2) + clock over assertEquals( increment + 1, optimizer.getLastValue() ); s.getTransaction().commit(); s.beginTransaction(); for ( int i = 0; i < entities.length; i++ ) { assertEquals( i + 1, entities[i].getId().intValue() ); s.delete( entities[i] ); } s.getTransaction().commit(); s.close();
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/idgen/enhanced/table/HiLoTableTest.java File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/idgen/enhanced/table/PooledTableTest.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
public class HiLoTableTest extends FunctionalTestCase {
1
public class PooledTableTest extends FunctionalTestCase {
2
	public HiLoTableTest(String string) {
2
	public PooledTableTest(String string) {
3
		super( string );
3
		super( string );
4
	}
4
	}
5
	public String[] getMappings() {
5
	public String[] getMappings() {
6
		return new String[] { "idgen/enhanced/table/HiLo.hbm.xml" };
6
		return new String[] { "idgen/enhanced/table/Pooled.hbm.xml" };
7
	}
7
	}
8
	public static Test suite() {
8
	public static Test suite() {
9
		return new FunctionalTestClassTestSuite( HiLoTableTest.class );
9
		return new FunctionalTestClassTestSuite( PooledTableTest.class );
10
	}
10
	}
11
	public void testNormalBoundary() {
11
	public void testNormalBoundary() {
12
		EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
12
		EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
13
		assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() );
13
		assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() );
14
		TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator();
14
		TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator();
15
		assertClassAssignability( OptimizerFactory.HiLoOptimizer.class, generator.getOptimizer().getClass() );
15
		assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() );
16
		OptimizerFactory.HiLoOptimizer optimizer = ( OptimizerFactory.HiLoOptimizer ) generator.getOptimizer();
16
		OptimizerFactory.PooledOptimizer optimizer = ( OptimizerFactory.PooledOptimizer ) generator.getOptimizer();
17
		int increment = optimizer.getIncrementSize();
17
		int increment = optimizer.getIncrementSize();
18
		Entity[] entities = new Entity[ increment + 1 ];
18
		Entity[] entities = new Entity[ increment + 1 ];
19
		Session s = openSession();
19
		Session s = openSession();
20
		s.beginTransaction();
20
		s.beginTransaction();
21
		for ( int i = 0; i < increment; i++ ) {
21
		for ( int i = 0; i < increment; i++ ) {
22
			entities[i] = new Entity( "" + ( i + 1 ) );
22
			entities[i] = new Entity( "" + ( i + 1 ) );
23
			s.save( entities[i] );
23
			s.save( entities[i] );
24
			assertEquals( 1, generator.getTableAccessCount() ); // initialization
24
			assertEquals( 2, generator.getTableAccessCount() ); // initialization calls seq twice
25
			assertEquals( 1, optimizer.getLastSourceValue() ); // initialization
25
			assertEquals( increment + 1, optimizer.getLastSourceValue() ); // initialization calls seq twice
26
			assertEquals( i + 1, optimizer.getLastValue() );
26
			assertEquals( i + 1, optimizer.getLastValue() );
27
			assertEquals( increment + 1, optimizer.getHiValue() );
27
			assertEquals( increment + 1, optimizer.getLastSourceValue() );
28
		}
28
		}
29
		// now force a "clock over"
29
		// now force a "clock over"
30
		entities[ increment ] = new Entity( "" + increment );
30
		entities[ increment ] = new Entity( "" + increment );
31
		s.save( entities[ increment ] );
31
		s.save( entities[ increment ] );
32
		assertEquals( 2, generator.getTableAccessCount() ); // initialization
32
		assertEquals( 3, generator.getTableAccessCount() ); // initialization (2) + clock over
33
		assertEquals( 2, optimizer.getLastSourceValue() ); // initialization
33
		assertEquals( ( increment * 2 ) + 1, optimizer.getLastSourceValue() ); // initialization
34
		assertEquals( increment + 1, optimizer.getLastValue() );
34
 (2) + clock over
35
		assertEquals( ( increment * 2 ) + 1, optimizer.getHiValue() );
35
		assertEquals( increment + 1, optimizer.getLastValue() );
36
		s.getTransaction().commit();
36
		s.getTransaction().commit();
37
		s.beginTransaction();
37
		s.beginTransaction();
38
		for ( int i = 0; i < entities.length; i++ ) {
38
		for ( int i = 0; i < entities.length; i++ ) {
39
			assertEquals( i + 1, entities[i].getId().intValue() );
39
			assertEquals( i + 1, entities[i].getId().intValue() );
40
			s.delete( entities[i] );
40
			s.delete( entities[i] );
41
		}
41
		}
42
		s.getTransaction().commit();
42
		s.getTransaction().commit();
43
		s.close();
43
		s.close();
44
	
44
	
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0