@Test public void testDeleteListenerException() { final AtomicInteger failureBatchCount = new AtomicInteger(); testListenerException( batch -> { DeleteListener listener = new DeleteListener() .onBatchFailure( (batch2, throwable) -> failureBatchCount.incrementAndGet() ); QueryBatch mockQueryBatch = new QueryBatchImpl() { public DatabaseClient getClient() { throw new InternalError(errorMessage); } public QueryBatcher getBatcher() { return moveMgr.newQueryBatcher(new StructuredQueryBuilder().collection("dummy")); } }; listener.processEvent(mockQueryBatch); } ); // there should be one failure sent to the DeleteListener // onBatchFailure listener since getClient in mockQueryBatch throws InternalError assertEquals(1, failureBatchCount.get()); }