Skip to content

Commit 2d7709d

Browse files
committed
HHH-19653 replace lost test
1 parent 9bf7773 commit 2d7709d

File tree

3 files changed

+112
-6
lines changed

3 files changed

+112
-6
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import jakarta.persistence.Id;
1212

1313
import org.hibernate.boot.SessionFactoryBuilder;
14-
import org.hibernate.cfg.AvailableSettings;
1514
import org.hibernate.dialect.H2Dialect;
1615

1716
import org.hibernate.testing.RequiresDialect;
@@ -20,6 +19,8 @@
2019
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
2120
import org.junit.Test;
2221

22+
import static org.hibernate.cfg.JdbcSettings.CONNECTION_PROVIDER;
23+
import static org.hibernate.cfg.JdbcSettings.ISOLATION;
2324
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
2425
import static org.junit.Assert.assertEquals;
2526
import static org.junit.Assert.assertTrue;
@@ -52,8 +53,8 @@ protected Class<?>[] getAnnotatedClasses() {
5253
@Override
5354
protected void addSettings(Map<String,Object> settings) {
5455
connectionProvider = new C3P0ProxyConnectionProvider();
55-
settings.put( AvailableSettings.CONNECTION_PROVIDER, connectionProvider );
56-
settings.put( AvailableSettings.ISOLATION, "READ_COMMITTED" );
56+
settings.put( CONNECTION_PROVIDER, connectionProvider );
57+
settings.put( ISOLATION, "READ_COMMITTED" );
5758
}
5859

5960
@Test

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import jakarta.persistence.Id;
1212

1313
import org.hibernate.boot.SessionFactoryBuilder;
14-
import org.hibernate.cfg.AvailableSettings;
1514
import org.hibernate.dialect.H2Dialect;
1615

1716
import org.hibernate.testing.RequiresDialect;
@@ -20,6 +19,8 @@
2019
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
2120
import org.junit.Test;
2221

22+
import static org.hibernate.cfg.JdbcSettings.CONNECTION_PROVIDER;
23+
import static org.hibernate.cfg.JdbcSettings.ISOLATION;
2324
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
2425
import static org.junit.Assert.assertEquals;
2526
import static org.junit.Assert.assertTrue;
@@ -52,8 +53,8 @@ protected Class<?>[] getAnnotatedClasses() {
5253
@Override
5354
protected void addSettings(Map<String,Object> settings) {
5455
connectionProvider = new C3P0ProxyConnectionProvider();
55-
settings.put( AvailableSettings.CONNECTION_PROVIDER, connectionProvider );
56-
settings.put( AvailableSettings.ISOLATION, "REPEATABLE_READ" );
56+
settings.put( CONNECTION_PROVIDER, connectionProvider );
57+
settings.put( ISOLATION, "REPEATABLE_READ" );
5758
}
5859

5960
@Test
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.test.c3p0;
6+
7+
import jakarta.persistence.Entity;
8+
import jakarta.persistence.Id;
9+
import org.hibernate.boot.SessionFactoryBuilder;
10+
import org.hibernate.dialect.H2Dialect;
11+
import org.hibernate.testing.RequiresDialect;
12+
import org.hibernate.testing.jdbc.SQLStatementInterceptor;
13+
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
14+
import org.hibernate.testing.orm.junit.JiraKey;
15+
import org.junit.Test;
16+
17+
import java.sql.Connection;
18+
import java.sql.SQLException;
19+
import java.util.Map;
20+
21+
import static org.hibernate.cfg.JdbcSettings.CONNECTION_PROVIDER;
22+
import static org.hibernate.cfg.JdbcSettings.ISOLATION;
23+
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
24+
import static org.junit.Assert.assertEquals;
25+
import static org.junit.Assert.assertTrue;
26+
import static org.mockito.Mockito.never;
27+
import static org.mockito.Mockito.verify;
28+
29+
/**
30+
* @author Vlad Mihalcea
31+
*/
32+
@JiraKey(value = "HHH-12749")
33+
@RequiresDialect(H2Dialect.class)
34+
public class C3P0EmptyIsolationLevelTest extends
35+
BaseNonConfigCoreFunctionalTestCase {
36+
37+
private C3P0ProxyConnectionProvider connectionProvider;
38+
private SQLStatementInterceptor sqlStatementInterceptor;
39+
40+
@Override
41+
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
42+
sqlStatementInterceptor = new SQLStatementInterceptor( sfb );
43+
}
44+
45+
@Override
46+
protected Class<?>[] getAnnotatedClasses() {
47+
return new Class<?>[] {
48+
Person.class,
49+
};
50+
}
51+
52+
@Override
53+
protected void addSettings(Map<String,Object> settings) {
54+
connectionProvider = new C3P0ProxyConnectionProvider();
55+
settings.put( CONNECTION_PROVIDER, connectionProvider );
56+
settings.put( ISOLATION, "" );
57+
}
58+
59+
@Test
60+
public void testStoredProcedureOutParameter() throws SQLException {
61+
clearSpies();
62+
63+
doInHibernate( this::sessionFactory, session -> {
64+
Person person = new Person();
65+
person.id = 1L;
66+
person.name = "Vlad Mihalcea";
67+
68+
session.persist( person );
69+
} );
70+
71+
assertEquals( 1, sqlStatementInterceptor.getSqlQueries().size() );
72+
assertTrue( sqlStatementInterceptor.getSqlQueries().get( 0 ).toLowerCase().startsWith( "insert into" ) );
73+
Connection connectionSpy = connectionProvider.getConnectionSpyMap().keySet().iterator().next();
74+
verify( connectionSpy, never() ).setTransactionIsolation( Connection.TRANSACTION_READ_COMMITTED );
75+
76+
clearSpies();
77+
78+
doInHibernate( this::sessionFactory, session -> {
79+
Person person = session.find( Person.class, 1L );
80+
81+
assertEquals( "Vlad Mihalcea", person.name );
82+
} );
83+
84+
assertEquals( 1, sqlStatementInterceptor.getSqlQueries().size() );
85+
assertTrue( sqlStatementInterceptor.getSqlQueries().get( 0 ).toLowerCase().startsWith( "select" ) );
86+
connectionSpy = connectionProvider.getConnectionSpyMap().keySet().iterator().next();
87+
verify( connectionSpy, never() ).setTransactionIsolation( Connection.TRANSACTION_READ_COMMITTED );
88+
}
89+
90+
private void clearSpies() {
91+
sqlStatementInterceptor.getSqlQueries().clear();
92+
connectionProvider.clear();
93+
}
94+
95+
@Entity(name = "Person")
96+
public static class Person {
97+
98+
@Id
99+
private Long id;
100+
101+
private String name;
102+
}
103+
104+
}

0 commit comments

Comments
 (0)