use of io.spine.server.projection.given.ProjectionEventDeliveryTestEnv.PostponingEventDelivery in project core-java by SpineEventEngine.
the class ProjectionEventDeliveryShould method postpone_events_dispatched_to_subscriber_method.
@Test
public void postpone_events_dispatched_to_subscriber_method() {
assertNull(ProjectDetails.getEventReceived());
final Event event = projectCreated();
boundedContext.getEventBus().post(event);
assertNull(ProjectDetails.getEventReceived());
final EventEnvelope expectedEnvelope = EventEnvelope.of(event);
final PostponingEventDelivery delivery = repository.getEndpointDelivery();
final Map<ProjectId, EventEnvelope> postponedEvents = delivery.getPostponedEvents();
assertTrue(postponedEvents.size() == 1 && postponedEvents.containsValue(expectedEnvelope));
final ProjectId projectId = postponedEvents.keySet().iterator().next();
delivery.deliverNow(projectId, postponedEvents.get(projectId));
final PrjProjectCreated deliveredEventMsg = ProjectDetails.getEventReceived();
assertNotNull(deliveredEventMsg);
assertEquals(Events.getMessage(event), deliveredEventMsg);
}
Aggregations