Пример #1
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }