public void testDeleteWithExpectedResultSizeOnCobarSqlMapClientTemplate() { Follower f = new Follower("fname"); getSqlMapClientTemplate().insert("com.alibaba.cobar.client.entities.Follower.create", f); String confirmSQL = "select name from followers where name='fname'"; verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt1m); verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt1s); verifyEntityExistenceOnSpecificDataSource(confirmSQL, jt2m); verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt2s); try { getSqlMapClientTemplate() .delete("com.alibaba.cobar.client.entities.Follower.deleteByName", f, 2); fail("only one row will be affected in fact."); } catch (DataAccessException e) { assertTrue(e instanceof JdbcUpdateAffectedIncorrectNumberOfRowsException); JdbcUpdateAffectedIncorrectNumberOfRowsException ex = (JdbcUpdateAffectedIncorrectNumberOfRowsException) e; assertEquals(1, ex.getActualRowsAffected()); } // although JdbcUpdateAffectedIncorrectNumberOfRowsException is raised, but the delete does // performed successfully. verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt1m); verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt1s); verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt2m); verifyEntityNonExistenceOnSpecificDataSource(confirmSQL, jt2s); try { getSqlMapClientTemplate() .delete("com.alibaba.cobar.client.entities.Follower.deleteByName", f, 0); } catch (DataAccessException e) { fail(); } }
public void testDeleteWithRequiredRowsAffectedAndInvalidRowCount() throws SQLException { TestSqlMapClientTemplate template = new TestSqlMapClientTemplate(); template.executor.delete("myStatement", "myParameter"); template.executorControl.setReturnValue(20, 1); template.executorControl.replay(); try { template.delete("myStatement", "myParameter", 10); fail("Should have thrown JdbcUpdateAffectedIncorrectNumberOfRowsException"); } catch (JdbcUpdateAffectedIncorrectNumberOfRowsException ex) { // expected assertEquals(10, ex.getExpectedRowsAffected()); assertEquals(20, ex.getActualRowsAffected()); } template.executorControl.verify(); }