### Question:
ContextAwareEventStore implements EventStore { @Override public void offer(SagaEvent sagaEvent) { sagaEvent.gatherTo(sagaContext); eventStore.offer(sagaEvent); } ContextAwareEventStore(EventStore eventStore, SagaContext sagaContext); @Override void offer(SagaEvent sagaEvent); @Override void populate(Iterable<EventEnvelope> events); @Override long size(); @Override Iterator<SagaEvent> iterator();  }### Answer:
@Test public void persistWithUnderlyingStore() throws Exception { contextAwareEventStore.offer(sagaEvent); verify(sagaEvent).gatherTo(context); verify(underlying).offer(sagaEvent); }