@Override public synchronized void close() { final DBLeasedSession theSessionToClose = myOriginalSession; myOriginalSession = null; if (theSessionToClose != null) theSessionToClose.close(); }
@Test public void wrap_connection_not_own() throws SQLException { final Connection connection = obtainConnection(); assertThat(connection.isClosed()).isFalse(); final DBLeasedSession session = JdbcSessions.wrap(connection, provider, false); assertThat(session.isClosed()).isFalse(); session.close(); assertThat(session.isClosed()).isTrue(); assertThat(connection.isClosed()).isFalse(); connection.close(); assertThat(connection.isClosed()).isTrue(); }
@Test public void wrap_connection_ownership() throws SQLException { final Connection connection = obtainConnection(); assertThat(connection.isClosed()).isFalse(); final DBLeasedSession session = JdbcSessions.wrap(connection, provider, true); assertThat(session.isClosed()).isFalse(); session.close(); assertThat(session.isClosed()).isTrue(); assertThat(connection.isClosed()).isTrue(); }
@Test public void leaseSession_basic() { final DBLeasedSession session = myFacade.leaseSession(); assertThat(session.isClosed()).isFalse(); session.ping(); session.close(); assertThat(session.isClosed()).isTrue(); }
@Test public void ping() { assert DB != null; DB.connect(); final DBLeasedSession session = DB.leaseSession(); session.ping(); session.close(); DB.disconnect(); }
@Test public void isInTransaction_begin_commit() { final DBLeasedSession session = myFacade.leaseSession(); try { assertThat(session.isInTransaction()).isFalse(); session.beginTransaction(); assertThat(session.isInTransaction()).isTrue(); session.commit(); assertThat(session.isInTransaction()).isFalse(); } finally { session.close(); } }
@Test public void isInTransaction_begin_rollback() { final DBLeasedSession session = myFacade.leaseSession(); try { assertThat(session.isInTransaction()).isFalse(); session.beginTransaction(); assertThat(session.isInTransaction()).isTrue(); session.rollback(); assertThat(session.isInTransaction()).isFalse(); } finally { session.close(); } }
@Test public void transaction_commit() { TH.ensureNoTableOrView("Tab_1"); TH.performCommand("create table Tab_1 (C1 char(1))"); TH.performCommand("insert into Tab_1 values ('A')"); DBLeasedSession session = DB.leaseSession(); try { assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); session.beginTransaction(); session.command("insert into Tab_1 values ('B')").run(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); session.commit(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); } finally { session.close(); } }
@Test public void transaction_rollback() { TH.ensureNoTableOrView("Tab_1"); TH.performCommand("create table Tab_1 (C1 char(1) not null)"); TH.performCommand("insert into Tab_1 values ('A')"); DBLeasedSession session = DB.leaseSession(); try { assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); session.beginTransaction(); session.command("insert into Tab_1 values ('B')").run(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); session.rollback(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); } finally { session.close(); } }