public void Should_Store_Events_When_Publish_Event() { var eventStore = new EventStoreInMemory(); var eventPublisher = new EventPublisher(eventStore, new List <IEventHandler>()); eventPublisher.Publish(new OrderStarted(new OrderId("1"), 1), 1); Assert.Contains(new OrderStarted(new OrderId("1"), 1), eventStore.GetAll(new OrderId("1"))); }
public void Should_throw_when_store_event_with_sequence_event_already_stored() { var eventStore = new EventStoreInMemory(); eventStore.Add(new OrderStarted(new OrderId("1"), 5), 1); eventStore.Add(new MarchandiseReceived(new OrderId("1"), 5), 2); Assert.Throws <SequenceAlreadyStoredException>(() => eventStore.Add(new MarchandiseReceived(new OrderId("1"), 5), 2)); }
Should_Return_All_Events_When_Get_All_Events_Of_Aggregate_Instance_After_Store_Events_Of_An_Aggregate_Instance() { var eventStore = new EventStoreInMemory(); eventStore.Add(new OrderStarted(new OrderId("1"), 5), 1); eventStore.Add(new MarchandiseReceived(new OrderId("1"), 5), 2); var events = eventStore.GetAll(new OrderId("1")); Assert.Equal(2, events.Count); }
Should_Return_only_events_of_aggregate_instance_when_get_all_events_of_aggregate_instance_after_store_events_of_several_aggregate_instances() { var eventStore = new EventStoreInMemory(); eventStore.Add(new OrderStarted(new OrderId("1"), 5), 1); eventStore.Add(new MarchandiseReceived(new OrderId("1"), 5), 2); eventStore.Add(new OrderStarted(new OrderId("2"), 5), 1); var events = eventStore.GetAll(new OrderId("1")); Assert.Equal(2, events.Count); }
public void Should_Call_Handlers_When_Publish_Event() { var repository = new List <WaitingOrder>(); var pendingOrderEventHandler = new PendingOrderEventHandler(repository); var eventHandlers = new List <IEventHandler> { pendingOrderEventHandler }; var eventStore = new EventStoreInMemory(); var eventPublisher = new EventPublisher(eventStore, eventHandlers); eventPublisher.Publish(new OrderStarted(new OrderId("1"), 1), 1); Assert.Single(repository); }
public void Should_Display_Updated_Projection_When_Send_Command() { var repository = new List <WaitingOrder>(); IEventHandler pendingOrderEventHandler = new PendingOrderEventHandler(repository); IList <IEventHandler> eventHandlers = new List <IEventHandler> { pendingOrderEventHandler }; var eventStore = new EventStoreInMemory(); var eventPublisher = new EventPublisher(eventStore, eventHandlers); var commandHandler = new CommandHandler(eventPublisher, eventStore); var colisList = new List <Colis> { new Colis() }; commandHandler.Handle(new StartOrder(new OrderId("1"), colisList)); Assert.Single(repository); Assert.Equal(new OrderId("1"), repository.First().Id); Assert.Equal(1, repository.First().NumberColis); }