@Test public void successfulExecutionWithAckExpression() throws Exception { String ackExpression = "some-expression"; String expressionEvalutaionResult = "new payload"; event.setMessage(spy(event.getMessage())); when(mockUntilSuccessfulConfiguration.getAckExpression()).thenReturn(ackExpression); when(mockUntilSuccessfulConfiguration .getMuleContext() .getExpressionManager() .evaluate(ackExpression, event)) .thenReturn(expressionEvalutaionResult); SynchronousUntilSuccessfulProcessingStrategy processingStrategy = createProcessingStrategy(); when(mockRoute.process(event)).thenReturn(event); assertThat(processingStrategy.route(event), is(event)); verify(mockRoute).process(event); verify(mockUntilSuccessfulConfiguration.getMuleContext().getExpressionManager()) .evaluate(ackExpression, event); verify(event.getMessage()).setPayload(expressionEvalutaionResult); }