use of io.spine.core.Event in project core-java by SpineEventEngine.
the class IntegrationBusShould method dispatch_events_from_one_BC_to_external_subscribers_of_another_BC.
@Test
public void dispatch_events_from_one_BC_to_external_subscribers_of_another_BC() {
final InMemoryTransportFactory transportFactory = InMemoryTransportFactory.newInstance();
final BoundedContext sourceContext = contextWithTransport(transportFactory);
contextWithExternalSubscribers(transportFactory);
assertNull(ProjectEventsSubscriber.getExternalEvent());
final Event event = projectCreated();
sourceContext.getEventBus().post(event);
assertEquals(AnyPacker.unpack(event.getMessage()), ProjectEventsSubscriber.getExternalEvent());
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class IntegrationBusShould method emit_unsupported_external_message_exception_if_message_type_is_unknown.
@Test
public void emit_unsupported_external_message_exception_if_message_type_is_unknown() {
final InMemoryTransportFactory transportFactory = InMemoryTransportFactory.newInstance();
final BoundedContext boundedContext = contextWithTransport(transportFactory);
final Event event = projectCreated();
final BoundedContextName boundedContextName = BoundedContext.newName("External context ID");
final ExternalMessage externalMessage = ExternalMessages.of(event, boundedContextName);
final MemoizingObserver<Ack> observer = StreamObservers.memoizingObserver();
boundedContext.getIntegrationBus().post(externalMessage, observer);
final Error error = observer.firstResponse().getStatus().getError();
assertFalse(Validate.isDefault(error));
assertEquals(ExternalMessageValidationError.getDescriptor().getFullName(), error.getType());
assertTrue(UNSUPPORTED_EXTERNAL_MESSAGE.getNumber() == error.getCode());
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class IntegrationBusShould method avoid_dispatching_events_from_one_BC_to_domestic_entity_subscribers_of_another_BC.
@Test
public void avoid_dispatching_events_from_one_BC_to_domestic_entity_subscribers_of_another_BC() {
final InMemoryTransportFactory transportFactory = InMemoryTransportFactory.newInstance();
final BoundedContext sourceContext = contextWithTransport(transportFactory);
final BoundedContext destContext = contextWithExtEntitySubscribers(transportFactory);
assertNull(ProjectDetails.getDomesticEvent());
final Event event = projectStarted();
sourceContext.getEventBus().post(event);
assertNotEquals(AnyPacker.unpack(event.getMessage()), ProjectDetails.getDomesticEvent());
assertNull(ProjectDetails.getDomesticEvent());
destContext.getEventBus().post(event);
assertEquals(AnyPacker.unpack(event.getMessage()), ProjectDetails.getDomesticEvent());
}
use of io.spine.core.Event 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);
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class PmMessageDeliveryTestEnv method projectStarted.
public static Event projectStarted() {
final ProjectId projectId = projectId();
final TestEventFactory eventFactory = TestEventFactory.newInstance(AnyPacker.pack(projectId), PmMessageDeliveryTestEnv.class);
final PmProjectStarted msg = PmProjectStarted.newBuilder().setProjectId(projectId).build();
final Event result = eventFactory.createEvent(msg);
return result;
}
Aggregations