package org.zapodot.junit.db; import org.junit.Rule; import org.junit.Test; import org.zapodot.junit.db.plugin.InitializationPlugin; import java.sql.*; import static org.junit.Assert.assertFalse; /** * @author zapodot */ public class EmbeddedDatabaseRulePluginCloseConnectionTest { public static class InitDbPlugin implements InitializationPlugin { @Override public void connectionMade(final String name, final Connection connection) { try (final Statement statement = connection.createStatement()) { statement.execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255) NULL )"); connection.close(); } catch (SQLException e) { throw new RuntimeException("Failed to init db", e); } } } @Rule public EmbeddedDatabaseRule embeddedDatabaseRule = EmbeddedDatabaseRule.builder().initializedByPlugin(new InitDbPlugin()).build(); @Test public void connectionShouldNotBeClosed() throws Exception { try (final Connection connection = DriverManager.getConnection(embeddedDatabaseRule.getConnectionJdbcUrl()); final Statement statement = connection.createStatement(); final ResultSet resultSet = statement.executeQuery("SELECT * FROM TEST") ) { assertFalse(resultSet.next()); } } }