	@Test
	public void test_1HeavyMessageWithFailureHandler() throws Exception {

		// setup
		Message msg1 = createMessage(1);
		DeleteMessageRequest expectedDmr = createDeleteMessageRequest(1);
		when(sqs.receiveMessage(any(ReceiveMessageRequest.class))).thenReturn(receiveMessageResultOf(msg1));
		doAnswer(createHeavyJobAnswer(4, true)).when(messageHandler).accept(any(Message.class));
		// exercise
		sut.loop();
		// verify
		verify(sqs).receiveMessage(any(ReceiveMessageRequest.class));
		verify(messageHandler).accept(eq(msg1));
		verify(sqs, never()).deleteMessage(eq(expectedDmr));
		verify(sqs).changeMessageVisibility(any(ChangeMessageVisibilityRequest.class));
	}