@Test /** Operation: DELETE Body contains: 12345678900987654321abcdeffedcba */ public void testDeleteWithIngestException() throws Exception { resetMocks(); // Setup expectations to verify final MockEndpoint mockVerifierEndpoint = getMockEndpoint("mock:result"); mockVerifierEndpoint.expectedMessageCount(1); final List<Metacard> metacards = new ArrayList<Metacard>(); metacards.add(metacard1); // setup mock catalog framework final String[] metacardIds = new String[metacards.size()]; for (int i = 0; i < metacards.size(); i++) { metacardIds[i] = metacards.get(i).getId(); } DeleteRequest deleteRequest = new DeleteRequestImpl(metacardIds); DeleteResponse deleteResponse = new DeleteResponseImpl(deleteRequest, new HashMap(), metacards); when(catalogFramework.delete(any(DeleteRequest.class))).thenThrow(new IngestException()); // Exercise the route with a DELETE operation template.sendBodyAndHeader("direct:sampleInput", metacardIds, "Operation", "DELETE"); // Verify that the number of metacards in the exchange after the records // is identical to the input assertListSize(mockVerifierEndpoint.getExchanges(), 1); final Exchange exchange = mockVerifierEndpoint.getExchanges().get(0); final List<Update> cardsDeleted = (List<Update>) exchange.getIn().getBody(); assertListSize(cardsDeleted, 0); mockVerifierEndpoint.assertIsSatisfied(); }