public async Task When_classes_not_implementing_IEvent_are_used_to_query_the_event_store_then_only_the_corresponding_events_are_queried() { var eventsQueried = 0; var expectedEventsQueried = 0; Events.Write(20, _ => { Event e = null; switch (Any.Int(1, 3)) { case 1: e = (Event)Events.Any(); break; case 2: e = new Order.ItemAdded(); break; case 3: e = new Order.ItemRemoved(); break; } if (e is Order.ItemAdded || e is Order.ItemRemoved) { expectedEventsQueried++; } e.AggregateId = Guid.NewGuid(); return(e); }); var projector1 = Projector.CreateFor <ItemAdded>(e => { eventsQueried++; }); var projector2 = Projector.CreateFor <ItemRemoved>(e => { eventsQueried++; }); using (var catchup = CreateReadModelCatchup(projector1, projector2)) { await catchup.Run(); } eventsQueried.Should().Be(expectedEventsQueried); }
public async Task A_dynamic_projector_can_specify_which_events_to_query() { var eventsQueried = 0; var expectedEventsQueried = 0; Events.Write(20, _ => { Event e = null; switch (Any.Int(1, 3)) { case 1: e = (Event)Events.Any(); break; case 2: e = new Order.ItemAdded(); break; case 3: e = new Order.ItemRemoved(); break; } if (e is Order.ItemAdded || e is Order.ItemRemoved) { expectedEventsQueried++; } e.AggregateId = Guid.NewGuid(); return(e); }); using (var catchup = CreateReadModelCatchup(Projector.CreateDynamic(e => { eventsQueried++; }, "Order.ItemAdded", "Order.ItemRemoved"))) { await catchup.Run(); } eventsQueried.Should().Be(expectedEventsQueried); }
public void UpdateProjection(Order.ItemRemoved @event) { }