Search in sources :

Example 1 with PostponingEventDelivery

use of io.spine.server.procman.given.PmMessageDeliveryTestEnv.PostponingEventDelivery in project core-java by SpineEventEngine.

the class PmMessageDeliveryShould method postpone_events_dispatched_to_reactor_method.

@Test
public void postpone_events_dispatched_to_reactor_method() {
    assertNull(ReactingProjectWizard.getEventReceived());
    final Event event = projectStarted();
    boundedContext.getEventBus().post(event);
    assertNull(ReactingProjectWizard.getEventReceived());
    final EventEnvelope expectedEnvelope = EventEnvelope.of(event);
    final PostponingEventDelivery delivery = repository.getEventEndpointDelivery();
    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 PmProjectStarted deliveredEventMsg = ReactingProjectWizard.getEventReceived();
    assertNotNull(deliveredEventMsg);
    assertEquals(Events.getMessage(event), deliveredEventMsg);
}
Also used : EventEnvelope(io.spine.core.EventEnvelope) ProjectId(io.spine.test.procman.ProjectId) Event(io.spine.core.Event) PmProjectStarted(io.spine.test.procman.event.PmProjectStarted) PostponingEventDelivery(io.spine.server.procman.given.PmMessageDeliveryTestEnv.PostponingEventDelivery) Test(org.junit.Test)

Aggregations

Event (io.spine.core.Event)1 EventEnvelope (io.spine.core.EventEnvelope)1 PostponingEventDelivery (io.spine.server.procman.given.PmMessageDeliveryTestEnv.PostponingEventDelivery)1 ProjectId (io.spine.test.procman.ProjectId)1 PmProjectStarted (io.spine.test.procman.event.PmProjectStarted)1 Test (org.junit.Test)1