Teste Spring asyncResult () e jsonPath () juntos

Eu estou usando um url restful para iniciar um processo backend de longa duração (normalmente é em um cron cronograma, mas queremos a capacidade de iniciá-lo manualmente).

O código abaixo funciona e vejo o resultado no navegador quando testo manualmente.

@ResponseBody
@RequestMapping(value = "/trigger/{jobName}", method = RequestMethod.GET)
public Callable<TriggerResult> triggerJob(@PathVariable final String jobName) {

    return new Callable<TriggerResult>() {
        @Override
        public TriggerResult call() throws Exception {
            // Code goes here to locate relevant job and kick it off, waiting for result
            String message = <result from my job>;
            return new TriggerResult(SUCCESS, message);
        }
    };
}

Quando eu testo isso sem oCallable Eu usei o código abaixo e tudo funciona (eu mudei a mensagem de erro esperada para simplificar post).

mockMvc.perform(get("/trigger/job/xyz"))
    .andExpect(status().isOk())
    .andDo(print())
    .andExpect(jsonPath("status").value("SUCCESS"))
    .andExpect(jsonPath("message").value("A meaningful message appears"));

Quando adicionei oCallable no entanto, não funciona. Eu também tentei abaixo, mas não funcionou. Alguém mais teve sucesso?

mockMvc.perform(get("/trigger/job/xyz"))
    .andExpect(status().isOk())
    .andDo(print())
    .andExpect(request().asyncResult(jsonPath("status").value("SUCCESS")))
    .andExpect(request().asyncResult(jsonPath("message").value("A meaningful message appears")));

Abaixo está a parte relevante da minha impressão (). Parece que mockMvc não pode desvendar o Json corretamente neste caso (mesmo que ele funcione no meu navegador)? Quando faço isso semCallable Eu vejo o JSON completo.

MockHttpServletRequest:
     HTTP Method = GET
     Request URI = /trigger/job/xyz
      Parameters = {}
         Headers = {}

         Handler:
            Type = foo.bar.web.controller.TriggerJobController
          Method = public java.util.concurrent.Callable<foo.bar.myproject.web.model.TriggerResult> foo.bar.myproject.web.controller.TriggerJobController.triggerJob(java.lang.String)

           Async:
 Was async started = true
      Async result = foo.bar.myproject.web.model.TriggerResult@67aa1e71


Resolved Exception:
            Type = null

    ModelAndView:
       View name = null
            View = null
           Model = null

        FlashMap:

MockHttpServletResponse:
          Status = 200
   Error message = null
         Headers = {}
    Content type = null
            Body = 
   Forwarded URL = null
  Redirected URL = null
         Cookies = []

questionAnswers(3)

yourAnswerToTheQuestion