Skip to content

Commit 910b3d6

Browse files
committed
Drop JUnit 4 usage
1 parent b7bd345 commit 910b3d6

16 files changed

+507
-397
lines changed

hibernate-agroal/src/test/java/org/hibernate/test/agroal/AgroalConnectionProviderTest.java

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,54 @@
44
*/
55
package org.hibernate.test.agroal;
66

7+
import org.hibernate.agroal.internal.AgroalConnectionProvider;
8+
import org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.ConnectionProviderJdbcConnectionAccess;
9+
import org.hibernate.engine.jdbc.spi.JdbcServices;
10+
import org.hibernate.engine.spi.SessionFactoryImplementor;
11+
import org.hibernate.service.spi.ServiceRegistryImplementor;
12+
import org.hibernate.testing.orm.junit.DomainModel;
13+
import org.hibernate.testing.orm.junit.ServiceRegistry;
14+
import org.hibernate.testing.orm.junit.ServiceRegistryScope;
15+
import org.hibernate.testing.orm.junit.SessionFactory;
16+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
17+
import org.junit.jupiter.api.Test;
18+
719
import java.sql.Connection;
820
import java.sql.SQLException;
921
import java.util.ArrayList;
1022
import java.util.List;
1123

12-
import org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.ConnectionProviderJdbcConnectionAccess;
13-
import org.hibernate.engine.jdbc.spi.JdbcServices;
14-
import org.hibernate.agroal.internal.AgroalConnectionProvider;
15-
16-
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
17-
import org.junit.Test;
18-
19-
import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping;
20-
import static org.junit.Assert.assertFalse;
21-
import static org.junit.Assert.assertNotNull;
22-
import static org.junit.Assert.assertTrue;
23-
import static org.junit.Assert.fail;
24+
import static org.assertj.core.api.Assertions.assertThat;
25+
import static org.hibernate.testing.orm.junit.ExtraAssertions.assertTyping;
26+
import static org.junit.jupiter.api.Assertions.fail;
2427

2528
/**
2629
* @author Brett Meyer
2730
*/
28-
public class AgroalConnectionProviderTest extends BaseCoreFunctionalTestCase {
31+
public class AgroalConnectionProviderTest {
2932

3033
@Test
31-
public void testAgroalConnectionProvider() throws Exception {
32-
JdbcServices jdbcServices = serviceRegistry().requireService( JdbcServices.class );
33-
ConnectionProviderJdbcConnectionAccess connectionAccess = assertTyping(
34-
ConnectionProviderJdbcConnectionAccess.class,
35-
jdbcServices.getBootstrapJdbcConnectionAccess()
36-
);
37-
assertTyping( AgroalConnectionProvider.class, connectionAccess.getConnectionProvider() );
34+
@ServiceRegistry
35+
@DomainModel
36+
@SessionFactory
37+
public void testAgroalConnectionProvider(ServiceRegistryScope registryScope, SessionFactoryScope factoryScope) throws Exception {
38+
final SessionFactoryImplementor sessionFactory = factoryScope.getSessionFactory();
39+
40+
var serviceRegistry = registryScope.getRegistry();
41+
42+
JdbcServices jdbcServices = serviceRegistry.requireService( JdbcServices.class );
43+
var connectionAccess = assertTyping( ConnectionProviderJdbcConnectionAccess.class, jdbcServices.getBootstrapJdbcConnectionAccess() );
44+
assertThat( connectionAccess ).isInstanceOf( ConnectionProviderJdbcConnectionAccess.class );
45+
var agroalConnectionProvider = assertTyping( AgroalConnectionProvider.class, connectionAccess.getConnectionProvider() );
3846

39-
AgroalConnectionProvider agroalConnectionProvider = (AgroalConnectionProvider) connectionAccess.getConnectionProvider();
4047
// For simplicity's sake, using the following in hibernate.properties:
4148
// hibernate.agroal.maxSize 2
4249
// hibernate.agroal.minSize 2
4350
List<Connection> conns = new ArrayList<>();
4451
for ( int i = 0; i < 2; i++ ) {
4552
Connection conn = agroalConnectionProvider.getConnection();
46-
assertNotNull( conn );
47-
assertFalse( conn.isClosed() );
53+
assertThat( conn ).isNotNull();
54+
assertThat( conn.isClosed() ).isFalse();
4855
conns.add( conn );
4956
}
5057

@@ -54,24 +61,30 @@ public void testAgroalConnectionProvider() throws Exception {
5461
}
5562
catch (SQLException e) {
5663
// expected
57-
assertTrue( e.getMessage().contains( "timeout" ) );
64+
assertThat( e.getMessage() ).contains( "timeout" );
5865
}
5966

6067
for ( Connection conn : conns ) {
6168
agroalConnectionProvider.closeConnection( conn );
62-
assertTrue( conn.isClosed() );
69+
assertThat( conn.isClosed() ).isTrue();
6370
}
6471

65-
releaseSessionFactory();
72+
// NOTE : The JUnit 5 infrastructure versus the JUnit 4 infrastructure causes the
73+
// StandardServiceRegistry (the SF registry's parent) to be created with auto-closure disabled.
74+
// That is not the normal process.
75+
// So here we explicitly close the parent.
76+
sessionFactory.close();
77+
( (ServiceRegistryImplementor) serviceRegistry ).destroy();
78+
assert serviceRegistry.getParentServiceRegistry() != null : "Expecting parent service registry";
79+
( (ServiceRegistryImplementor) serviceRegistry.getParentServiceRegistry() ).destroy();
6680

6781
try {
6882
agroalConnectionProvider.getConnection();
6983
fail( "Exception expected -- the pool should have been shutdown." );
7084
}
7185
catch (Exception e) {
7286
// expected
73-
assertTrue( e.getMessage() + " does not contain 'closed' or 'shutting down'",
74-
e.getMessage().contains( "closed" ) || e.getMessage().contains( "shutting down" ) );
87+
assertThat( e.getMessage() ).containsAnyOf( "closed", "shutting down" );
7588
}
7689
}
7790
}

hibernate-agroal/src/test/java/org/hibernate/test/agroal/AgroalSkipAutoCommitTest.java

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,63 @@
44
*/
55
package org.hibernate.test.agroal;
66

7-
import org.hibernate.cfg.AvailableSettings;
8-
import org.hibernate.cfg.Configuration;
97
import org.hibernate.test.agroal.util.PreparedStatementSpyConnectionProvider;
10-
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
11-
import org.junit.Test;
8+
import org.hibernate.testing.orm.junit.DomainModel;
9+
import org.hibernate.testing.orm.junit.ServiceRegistry;
10+
import org.hibernate.testing.orm.junit.SessionFactory;
11+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
12+
import org.hibernate.testing.orm.junit.Setting;
13+
import org.hibernate.testing.orm.junit.SettingProvider;
1214

1315
import jakarta.persistence.Entity;
1416
import jakarta.persistence.Id;
17+
import org.junit.jupiter.api.Test;
18+
1519
import java.sql.Connection;
1620
import java.util.List;
1721

18-
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
22+
import static org.assertj.core.api.Assertions.assertThat;
23+
import static org.hibernate.cfg.JdbcSettings.AUTOCOMMIT;
24+
import static org.hibernate.cfg.JdbcSettings.CONNECTION_PROVIDER;
25+
import static org.hibernate.cfg.JdbcSettings.CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT;
1926
import static org.junit.Assert.assertEquals;
2027
import static org.junit.Assert.assertTrue;
2128

2229
/**
2330
* @author Vlad Mihalcea
2431
*/
25-
public class AgroalSkipAutoCommitTest extends BaseCoreFunctionalTestCase {
26-
27-
private PreparedStatementSpyConnectionProvider connectionProvider = new PreparedStatementSpyConnectionProvider();
28-
29-
@Override
30-
protected void configure(Configuration configuration) {
31-
configuration.getProperties().put( AvailableSettings.CONNECTION_PROVIDER, connectionProvider );
32-
configuration.getProperties().put( AvailableSettings.CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT, Boolean.TRUE );
33-
configuration.getProperties().put( AvailableSettings.AUTOCOMMIT, Boolean.FALSE.toString() );
34-
}
35-
36-
@Override
37-
protected Class<?>[] getAnnotatedClasses() {
38-
return new Class<?>[]{ City.class };
39-
}
32+
public class AgroalSkipAutoCommitTest {
33+
private static final PreparedStatementSpyConnectionProvider connectionProvider = new PreparedStatementSpyConnectionProvider();
34+
private static final SettingProvider.Provider<PreparedStatementSpyConnectionProvider> connectionProviderProvider = () -> connectionProvider;
4035

4136
@Test
42-
public void test() {
37+
@ServiceRegistry(
38+
settings = {
39+
@Setting( name = CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT, value = "true" ),
40+
@Setting( name = AUTOCOMMIT, value = "false" )
41+
},
42+
settingProviders = @SettingProvider(settingName = CONNECTION_PROVIDER, provider = ConnectionProviderProvider.class)
43+
)
44+
@DomainModel( annotatedClasses = City.class )
45+
@SessionFactory
46+
public void test(SessionFactoryScope factoryScope) {
47+
factoryScope.getSessionFactory();
4348
connectionProvider.clear();
44-
doInHibernate( this::sessionFactory, session -> {
49+
factoryScope.inTransaction( (session) -> {
4550
City city = new City();
4651
city.setId( 1L );
4752
city.setName( "Cluj-Napoca" );
4853
session.persist( city );
4954

50-
assertTrue( connectionProvider.getAcquiredConnections().isEmpty() );
51-
assertTrue( connectionProvider.getReleasedConnections().isEmpty() );
55+
assertThat( connectionProvider.getAcquiredConnections().isEmpty() ).isTrue();
56+
assertThat( connectionProvider.getReleasedConnections().isEmpty() ).isTrue();
5257
} );
5358
verifyConnections();
5459

5560
connectionProvider.clear();
56-
doInHibernate( this::sessionFactory, session -> {
61+
factoryScope.inTransaction( (session) -> {
5762
City city = session.find( City.class, 1L );
58-
assertEquals( "Cluj-Napoca", city.getName() );
63+
assertThat( city.getName() ).isEqualTo( "Cluj-Napoca" );
5964
} );
6065
verifyConnections();
6166
}
@@ -101,4 +106,11 @@ public void setName(String name) {
101106
this.name = name;
102107
}
103108
}
109+
110+
public static class ConnectionProviderProvider implements SettingProvider.Provider<PreparedStatementSpyConnectionProvider> {
111+
@Override
112+
public PreparedStatementSpyConnectionProvider getSetting() {
113+
return connectionProvider;
114+
}
115+
}
104116
}

hibernate-agroal/src/test/java/org/hibernate/test/agroal/AgroalTransactionIsolationConfigTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
import org.hibernate.test.agroal.util.GradleParallelTestingAgroalConnectionProvider;
1313
import org.hibernate.testing.SkipForDialect;
14-
import org.hibernate.testing.common.connections.BaseTransactionIsolationConfigTest;
14+
import org.hibernate.testing.orm.common.BaseTransactionIsolationConfigTest;
15+
import org.hibernate.testing.orm.junit.ServiceRegistryScope;
1516

1617
/**
1718
* @author Steve Ebersole
@@ -21,7 +22,7 @@
2122
@SkipForDialect(value = GaussDBDialect.class, comment = "GaussDB does not support SERIALIZABLE isolation")
2223
public class AgroalTransactionIsolationConfigTest extends BaseTransactionIsolationConfigTest {
2324
@Override
24-
protected ConnectionProvider getConnectionProviderUnderTest() {
25+
protected ConnectionProvider getConnectionProviderUnderTest(ServiceRegistryScope registryScope) {
2526
return new GradleParallelTestingAgroalConnectionProvider();
2627
}
2728
}

hibernate-c3p0/src/test/java/org/hibernate/test/c3p0/C3P0ConnectionProviderTest.java

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,55 +4,49 @@
44
*/
55
package org.hibernate.test.c3p0;
66

7-
import java.lang.management.ManagementFactory;
8-
import java.util.Set;
9-
import javax.management.MBeanServer;
10-
import javax.management.ObjectName;
11-
127
import org.hibernate.c3p0.internal.C3P0ConnectionProvider;
138
import org.hibernate.dialect.SybaseASEDialect;
149
import org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.ConnectionProviderJdbcConnectionAccess;
1510
import org.hibernate.engine.jdbc.spi.JdbcServices;
16-
17-
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
11+
import org.hibernate.testing.orm.junit.DomainModel;
12+
import org.hibernate.testing.orm.junit.ServiceRegistry;
13+
import org.hibernate.testing.orm.junit.ServiceRegistryScope;
14+
import org.hibernate.testing.orm.junit.SessionFactory;
15+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1816
import org.hibernate.testing.orm.junit.SkipForDialect;
19-
import org.junit.Test;
17+
import org.junit.jupiter.api.Test;
2018

21-
import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping;
22-
import static org.junit.Assert.assertEquals;
23-
import static org.junit.Assert.assertTrue;
19+
import javax.management.MBeanServer;
20+
import javax.management.ObjectName;
21+
import java.lang.management.ManagementFactory;
22+
import java.util.Set;
23+
24+
import static org.assertj.core.api.Assertions.assertThat;
25+
import static org.hibernate.testing.orm.junit.ExtraAssertions.assertTyping;
2426

2527
/**
2628
* @author Strong Liu
2729
*/
2830
@SkipForDialect(dialectClass = SybaseASEDialect.class,
2931
reason = "JtdsConnection.isValid not implemented")
30-
public class C3P0ConnectionProviderTest extends BaseCoreFunctionalTestCase {
31-
32-
@Override
33-
protected void releaseSessionFactory() {
34-
super.releaseSessionFactory();
35-
try {
36-
//c3p0 does not close physical connections right away, so without this hack a connection leak false alarm is triggered.
37-
Thread.sleep( 100 );
38-
}
39-
catch ( InterruptedException e ) {
40-
}
41-
}
42-
32+
@ServiceRegistry
33+
@DomainModel
34+
@SessionFactory
35+
public class C3P0ConnectionProviderTest {
4336
@Test
44-
public void testC3P0isDefaultWhenThereIsC3P0Properties() {
45-
JdbcServices jdbcServices = serviceRegistry().requireService( JdbcServices.class );
46-
ConnectionProviderJdbcConnectionAccess connectionAccess =
47-
assertTyping(
37+
public void testC3P0isDefaultWhenThereIsC3P0Properties(ServiceRegistryScope registryScope) throws Exception {
38+
var serviceRegistry = registryScope.getRegistry();
39+
var jdbcServices = serviceRegistry.requireService( JdbcServices.class );
40+
var connectionAccess = assertTyping(
4841
ConnectionProviderJdbcConnectionAccess.class,
4942
jdbcServices.getBootstrapJdbcConnectionAccess()
50-
);
51-
assertTrue( connectionAccess.getConnectionProvider() instanceof C3P0ConnectionProvider );
43+
);
44+
assertThat( connectionAccess.getConnectionProvider() ).isInstanceOf( C3P0ConnectionProvider.class );
5245
}
5346

5447
@Test
55-
public void testHHH6635() throws Exception {
48+
public void testHHH6635(SessionFactoryScope factoryScope) throws Exception {
49+
var sf = factoryScope.getSessionFactory();
5650
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
5751
Set<ObjectName> set = mBeanServer.queryNames( null, null );
5852
boolean mbeanfound = false;
@@ -63,29 +57,30 @@ public void testHHH6635() throws Exception {
6357
// see according c3p0 settings in META-INF/persistence.xml
6458

6559
int actual_minPoolSize = (Integer) mBeanServer.getAttribute( obj, "minPoolSize" );
66-
assertEquals( 0, actual_minPoolSize );
60+
assertThat( actual_minPoolSize ).isEqualTo( 0 );
6761

6862
int actual_initialPoolSize = (Integer) mBeanServer.getAttribute( obj, "initialPoolSize" );
69-
assertEquals( 0, actual_initialPoolSize );
63+
assertThat( actual_initialPoolSize ).isEqualTo( 0 );
7064

7165
int actual_maxPoolSize = (Integer) mBeanServer.getAttribute( obj, "maxPoolSize" );
72-
assertEquals( 800, actual_maxPoolSize );
66+
assertThat( actual_maxPoolSize ).isEqualTo( 800 );
7367

7468
int actual_maxStatements = (Integer) mBeanServer.getAttribute( obj, "maxStatements" );
75-
assertEquals( 50, actual_maxStatements );
69+
assertThat( actual_maxStatements ).isEqualTo( 50 );
7670

7771
int actual_maxIdleTime = (Integer) mBeanServer.getAttribute( obj, "maxIdleTime" );
78-
assertEquals( 300, actual_maxIdleTime );
72+
assertThat( actual_maxIdleTime ).isEqualTo( 300 );
7973

8074
int actual_idleConnectionTestPeriod = (Integer) mBeanServer.getAttribute(
8175
obj,
8276
"idleConnectionTestPeriod"
8377
);
84-
assertEquals( 3000, actual_idleConnectionTestPeriod );
78+
assertThat( actual_idleConnectionTestPeriod ).isEqualTo( 3000 );
79+
8580
break;
8681
}
8782
}
8883

89-
assertTrue( "PooledDataSource BMean not found, please verify version of c3p0", mbeanfound );
84+
assertThat( mbeanfound ).as( "PooledDataSource BMean not found, please verify version of c3p0" ).isTrue();
9085
}
9186
}

0 commit comments

Comments
 (0)