public EventWithContext addMessageContext(Message message) {
        return toBuilder().messageContext(message).build();
    }
@Test
    public void addMessageContext() {
        final Event event = new TestEvent();
        final Message message = messageFactory.createMessage("", "", DateTime.now(DateTimeZone.UTC));
        final EventWithContext withContext = EventWithContext.builder()
                .event(event)
                .build();

        final EventWithContext withContext1 = withContext.addMessageContext(message);

        assertThat(withContext.messageContext()).isNotPresent();
        assertThat(withContext1.messageContext()).get().isEqualTo(message);
    }