### Question:
JacksonMessageConverter implements MessageConverter { @Override public <T> T readValue(Message message, Class<T> valueClass) { try { return objectMapper.readValue(message.getBody(), valueClass); } catch (IOException e) { throw new MessageConversionException("Failed to convert Message content", e); } } JacksonMessageConverter(ObjectMapper objectMapper); @Override AsyncQuery<T> readAsyncQuery(Message message, Class<T> bodyClass); @Override DomainEvent<T> readDomainEvent(Message message, Class<T> bodyClass); @Override Command<T> readCommand(Message message, Class<T> bodyClass); @Override T readValue(Message message, Class<T> valueClass); Command<T> readCommandStructure(Message message); @Override Message toMessage(Object object);  }### Answer:
@Test public void readValue() { Date date = new Date(); final Message message = converter.toMessage(new SampleClass("35", "name1", date)); final SampleClass value = converter.readValue(message, SampleClass.class); assertThat(value).extracting(SampleClass::getId, SampleClass::getName, SampleClass::getDate) .containsExactly("35", "name1", date); }