Search in sources :

Example 31 with Event

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);
}
Also used : EventEnvelope(io.spine.core.EventEnvelope) PrjProjectCreated(io.spine.test.projection.event.PrjProjectCreated) ProjectId(io.spine.test.projection.ProjectId) Event(io.spine.core.Event) PostponingEventDelivery(io.spine.server.projection.given.ProjectionEventDeliveryTestEnv.PostponingEventDelivery) Test(org.junit.Test)

Example 32 with Event

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);
}
Also used : EventEnvelope(io.spine.core.EventEnvelope) GivenEvent(io.spine.core.given.GivenEvent) Event(io.spine.core.Event) StringValue(com.google.protobuf.StringValue) TestProjectionRepository(io.spine.server.projection.given.ProjectionRepositoryTestEnv.TestProjectionRepository) Test(org.junit.Test)

Example 33 with Event

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());
}
Also used : NoOpTaskNamesRepository(io.spine.server.projection.given.ProjectionRepositoryTestEnv.NoOpTaskNamesRepository) GivenEvent(io.spine.core.given.GivenEvent) Event(io.spine.core.Event) Test(org.junit.Test)

Example 34 with Event

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));
}
Also used : TestEventFactory(io.spine.server.command.TestEventFactory) GivenEvent(io.spine.core.given.GivenEvent) Event(io.spine.core.Event)

Example 35 with Event

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;
}
Also used : PrjProjectCreated(io.spine.test.projection.event.PrjProjectCreated) TestEventFactory(io.spine.server.command.TestEventFactory) ProjectId(io.spine.test.projection.ProjectId) Event(io.spine.core.Event)

Aggregations

Event (io.spine.core.Event)115 Test (org.junit.Test)75 Command (io.spine.core.Command)19 EventContext (io.spine.core.EventContext)12 BoundedContext (io.spine.server.BoundedContext)12 GivenEvent (io.spine.server.event.given.EventBusTestEnv.GivenEvent)12 Version (io.spine.core.Version)10 TestEventFactory (io.spine.server.command.TestEventFactory)10 Message (com.google.protobuf.Message)9 EventEnvelope (io.spine.core.EventEnvelope)9 InMemoryTransportFactory (io.spine.server.integration.memory.InMemoryTransportFactory)9 Timestamp (com.google.protobuf.Timestamp)6 Ack (io.spine.core.Ack)6 TenantId (io.spine.core.TenantId)6 Error (io.spine.base.Error)5 AggregateMessageDispatcher.dispatchCommand (io.spine.server.aggregate.AggregateMessageDispatcher.dispatchCommand)5 AggregateTestEnv.newTenantId (io.spine.server.aggregate.given.aggregate.AggregateTestEnv.newTenantId)5 StringValue (com.google.protobuf.StringValue)4 GivenEvent (io.spine.core.given.GivenEvent)4 Duration (com.google.protobuf.Duration)3