@Override public String startTransaction() throws SQLException { getConnection().setAutoCommit(false); return "anyid"; }
@Override public void commit(String txnId) throws SQLException { getConnection().commit(); getConnection().setAutoCommit(true); }
@Override public void rollback(String txnId) throws SQLException { getConnection().rollback(); getConnection().setAutoCommit(true); } }
@Test public void testXACommit() throws Exception { ConnectionImpl conn = getMMConnection(); conn.setAutoCommit(false); conn.setTransactionXid(Mockito.mock(XidImpl.class)); try { conn.setAutoCommit(true); fail("Error Expected"); //$NON-NLS-1$ } catch (SQLException e) { // error expected } }
@Test public void testTransactionStatements() throws Exception { ConnectionImpl conn = Mockito.mock(ConnectionImpl.class); Properties p = new Properties(); Mockito.stub(conn.getExecutionProperties()).toReturn(p); StatementImpl statement = new StatementImpl(conn, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); assertFalse(statement.execute("start transaction")); //$NON-NLS-1$ Mockito.verify(conn).setAutoCommit(false); assertFalse(statement.execute("commit")); //$NON-NLS-1$ Mockito.verify(conn).setAutoCommit(true); assertFalse(statement.execute("start transaction")); //$NON-NLS-1$ assertFalse(statement.execute("rollback")); //$NON-NLS-1$ Mockito.verify(conn).rollback(false); assertFalse(statement.execute("abort transaction")); //$NON-NLS-1$ Mockito.verify(conn, Mockito.times(2)).rollback(false); assertFalse(statement.execute("rollback work")); //$NON-NLS-1$ Mockito.verify(conn, Mockito.times(3)).rollback(false); assertFalse(statement.execute("start transaction isolation level repeatable read")); //$NON-NLS-1$ Mockito.verify(conn).setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); }
this.getConnection().setAutoCommit(false); success = true; } finally { commit = true; if (synch) { this.getConnection().setAutoCommit(true);
this.getConnection().setAutoCommit(false); success = true; } finally { commit = true; if (synch) { this.getConnection().setAutoCommit(true);
@SuppressWarnings("unchecked") @Test public void testTransactionStatementsAsynch() throws Exception { ConnectionImpl conn = Mockito.mock(ConnectionImpl.class); Mockito.stub(conn.submitSetAutoCommitTrue(Mockito.anyBoolean())).toReturn((ResultsFuture)ResultsFuture.NULL_FUTURE); Properties p = new Properties(); Mockito.stub(conn.getExecutionProperties()).toReturn(p); StatementImpl statement = new StatementImpl(conn, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); statement.submitExecute("start transaction", null); //$NON-NLS-1$ Mockito.verify(conn).setAutoCommit(false); statement.submitExecute("commit", null); //$NON-NLS-1$ Mockito.verify(conn).submitSetAutoCommitTrue(true); statement.submitExecute("start transaction", null); //$NON-NLS-1$ statement.submitExecute("rollback", null); //$NON-NLS-1$ Mockito.verify(conn).submitSetAutoCommitTrue(false); }
/** test setReadOnly on Connection during a transaction */ @Test public void testSetReadOnly2() throws Exception { ConnectionImpl conn = getMMConnection(); conn.setAutoCommit(false); conn.setReadOnly(true); conn.setInLocalTxn(true); try { conn.setReadOnly(false); fail("Error Expected"); //$NON-NLS-1$ } catch (SQLException e) { // error expected } }