/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.test.c3p0;
import java.sql.Statement;
import org.hibernate.dialect.SQLServer2005Dialect;
import org.hibernate.testing.RequiresDialect;
import org.hibernate.testing.TestForIssue;
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
import org.junit.Test;
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Tests that checks the JDBC 4.2 compatibility of c3p0
*
* @author Vlad Mihalcea
*/
@RequiresDialect(SQLServer2005Dialect.class)
public class JdbcCompatibilityTest extends BaseCoreFunctionalTestCase {
@Test
@TestForIssue( jiraKey = "HHH-11308" )
public void testJdbc41() {
doInHibernate( this::sessionFactory, session -> {
session.doWork( connection -> {
//Connection#getSchema was added in Java 1.7
String schema = connection.getSchema();
assertNotNull(schema);
} );
} );
}
@Test
@TestForIssue( jiraKey = "HHH-11308" )
public void testJdbc42() {
doInHibernate( this::sessionFactory, session -> {
for ( int i = 0; i < 5; i++ ) {
IrrelevantEntity entity = new IrrelevantEntity();
entity.setName( getClass().getName() );
session.persist( entity );
}
session.flush();
session.doWork( connection -> {
try( Statement statement = connection.createStatement()) {
statement.executeUpdate( "DELETE FROM IrrelevantEntity" );
assertEquals( 5, statement.getLargeUpdateCount());
}
} );
} );
}
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class[]{ IrrelevantEntity.class };
}
}