use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.
the class PreparedStatementExecutorTest method assertExecuteUpdateForMultiplePreparedStatementsFailure.
@Test
public void assertExecuteUpdateForMultiplePreparedStatementsFailure() throws SQLException {
PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
SQLException exp = new SQLException();
when(preparedStatement1.executeUpdate()).thenThrow(exp);
when(preparedStatement2.executeUpdate()).thenThrow(exp);
when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DML, createPreparedStatementUnits(DML_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
assertThat(actual.executeUpdate(), is(0));
verify(preparedStatement1).executeUpdate();
verify(preparedStatement2).executeUpdate();
verify(preparedStatement1).getConnection();
verify(preparedStatement2).getConnection();
verify(getEventCaller(), times(2)).verifySQLType(SQLType.DML);
verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
verify(getEventCaller(), times(4)).verifySQL(DML_SQL);
verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_FAILURE);
verify(getEventCaller(), times(2)).verifyException(exp);
}
use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.
the class PreparedStatementExecutorTest method assertExecuteForMultiplePreparedStatements.
@Test
public void assertExecuteForMultiplePreparedStatements() throws SQLException {
PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
when(preparedStatement1.execute()).thenReturn(true);
when(preparedStatement2.execute()).thenReturn(true);
when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
assertTrue(actual.execute());
verify(preparedStatement1).execute();
verify(preparedStatement2).execute();
verify(preparedStatement1).getConnection();
verify(preparedStatement2).getConnection();
verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
verify(getEventCaller(), times(4)).verifySQL(DQL_SQL);
verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
verify(getEventCaller(), times(0)).verifyException(null);
}
use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.
the class PreparedStatementExecutorTest method assertExecuteQueryForMultiplePreparedStatementsFailure.
@Test
public void assertExecuteQueryForMultiplePreparedStatementsFailure() throws SQLException {
PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
SQLException exp = new SQLException();
when(preparedStatement1.executeQuery()).thenThrow(exp);
when(preparedStatement2.executeQuery()).thenThrow(exp);
when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
List<ResultSet> actualResultSets = actual.executeQuery();
assertThat(actualResultSets, is(Arrays.asList((ResultSet) null, null)));
verify(preparedStatement1).executeQuery();
verify(preparedStatement2).executeQuery();
verify(preparedStatement1).getConnection();
verify(preparedStatement2).getConnection();
verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
verify(getEventCaller(), times(4)).verifySQL(DQL_SQL);
verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_FAILURE);
verify(getEventCaller(), times(2)).verifyException(exp);
}
use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.
the class PreparedStatementExecutorTest method assertExecuteForSinglePreparedStatementWithDQL.
@Test
public void assertExecuteForSinglePreparedStatementWithDQL() throws SQLException {
PreparedStatement preparedStatement = mock(PreparedStatement.class);
when(preparedStatement.execute()).thenReturn(true);
when(preparedStatement.getConnection()).thenReturn(mock(Connection.class));
PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement, "ds_0"), Collections.emptyList());
assertTrue(actual.execute());
verify(preparedStatement).execute();
verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
verify(getEventCaller(), times(2)).verifySQL(DQL_SQL);
verify(getEventCaller(), times(2)).verifyParameters(Collections.emptyList());
verify(getEventCaller()).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
verify(getEventCaller()).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
verify(getEventCaller(), times(0)).verifyException(null);
}
use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.
the class PreparedStatementExecutorTest method assertExecuteUpdateForMultiplePreparedStatementsSuccess.
@Test
public void assertExecuteUpdateForMultiplePreparedStatementsSuccess() throws SQLException {
PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
when(preparedStatement1.executeUpdate()).thenReturn(10);
when(preparedStatement2.executeUpdate()).thenReturn(20);
when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DML, createPreparedStatementUnits(DML_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
assertThat(actual.executeUpdate(), is(30));
verify(preparedStatement1).executeUpdate();
verify(preparedStatement2).executeUpdate();
verify(preparedStatement1).getConnection();
verify(preparedStatement2).getConnection();
verify(getEventCaller(), times(2)).verifySQLType(SQLType.DML);
verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
verify(getEventCaller(), times(4)).verifySQL(DML_SQL);
verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
verify(getEventCaller(), times(0)).verifyException(null);
}
Aggregations