Search in sources :

Example 1 with PostponingEventDelivery

use of io.spine.server.aggregate.given.AggregateMessageDeliveryTestEnv.PostponingEventDelivery in project core-java by SpineEventEngine.

the class AggregateMessageDeliveryShould method postpone_events_dispatched_to_reactor_method.

@Test
public void postpone_events_dispatched_to_reactor_method() {
    assertNull(ReactingProject.getEventReceived());
    final Event event = projectStarted();
    boundedContext.getEventBus().post(event);
    assertNull(ReactingProject.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 AggProjectStarted deliveredEventMsg = ReactingProject.getEventReceived();
    assertNotNull(deliveredEventMsg);
    assertEquals(Events.getMessage(event), deliveredEventMsg);
}
Also used : EventEnvelope(io.spine.core.EventEnvelope) ProjectId(io.spine.test.aggregate.ProjectId) Event(io.spine.core.Event) PostponingEventDelivery(io.spine.server.aggregate.given.AggregateMessageDeliveryTestEnv.PostponingEventDelivery) AggProjectStarted(io.spine.test.aggregate.event.AggProjectStarted) Test(org.junit.Test)

Aggregations

Event (io.spine.core.Event)1 EventEnvelope (io.spine.core.EventEnvelope)1 PostponingEventDelivery (io.spine.server.aggregate.given.AggregateMessageDeliveryTestEnv.PostponingEventDelivery)1 ProjectId (io.spine.test.aggregate.ProjectId)1 AggProjectStarted (io.spine.test.aggregate.event.AggProjectStarted)1 Test (org.junit.Test)1