use of io.spine.core.Event 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);
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class ProjectionRepositoryShould method log_error_if_dispatch_unknown_event.
@Test
public void log_error_if_dispatch_unknown_event() {
final StringValue unknownEventMessage = StringValue.getDefaultInstance();
final Event event = GivenEvent.withMessage(unknownEventMessage);
repository().dispatch(EventEnvelope.of(event));
TestProjectionRepository testRepo = (TestProjectionRepository) repository();
assertTrue(testRepo.getLastErrorEnvelope() instanceof EventEnvelope);
assertEquals(Events.getMessage(event), testRepo.getLastErrorEnvelope().getMessage());
assertEquals(event, testRepo.getLastErrorEnvelope().getOuterObject());
// It must be "illegal argument type" since projections of this repository
// do not handle such events.
assertTrue(testRepo.getLastException() instanceof IllegalArgumentException);
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class ProjectionRepositoryShould method do_not_create_record_if_entity_is_not_updated.
@Test
public void do_not_create_record_if_entity_is_not_updated() {
final NoOpTaskNamesRepository repo = new NoOpTaskNamesRepository();
boundedContext.register(repo);
assertFalse(repo.loadAll().hasNext());
final Event event = createEvent(tenantId(), GivenEventMessage.projectCreated(), PRODUCER_ID, getCurrentTime());
repo.dispatch(EventEnvelope.of(event));
final Iterator<?> items = repo.loadAll();
assertFalse(items.hasNext());
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class ProjectionRepositoryShould method checkDispatchesEvent.
private void checkDispatchesEvent(Message eventMessage) {
final TestEventFactory eventFactory = newEventFactory(tenantId(), PRODUCER_ID);
final Event event = eventFactory.createEvent(eventMessage);
keepTenantIdFromEvent(boundedContext, event);
repository().dispatch(EventEnvelope.of(event));
assertTrue(TestProjection.processed(eventMessage));
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class ProjectionEventDeliveryTestEnv method projectCreated.
public static Event projectCreated() {
final ProjectId projectId = projectId();
final TestEventFactory eventFactory = TestEventFactory.newInstance(pack(projectId), ProjectionEventDeliveryTestEnv.class);
final PrjProjectCreated msg = PrjProjectCreated.newBuilder().setProjectId(projectId).build();
final Event result = eventFactory.createEvent(msg);
return result;
}
Aggregations