Пример #1
0
        public void When_order_drinks_command_after_open_tab_command_drinks_ordered_event_raised()
        {
            _eventRepository.GetEventsFor(_aggregateId).Returns(new List <IDomainEvent>
            {
                new TabOpened
                {
                    AggregateId = _aggregateId,
                    WaiterName  = "Drew",
                    TableNumber = 45
                }
            });

            var commandHandler = new OrderDrinksCommandHandler(_eventRepository, _messageBus);
            var drinksOrder    = new OrderDrinks
            {
                AggregateId = _aggregateId,
                OrderItems  = new List <OrderItem>
                {
                    new OrderItem
                    {
                        Name  = "Coke (pint)",
                        Price = 2.0m
                    }
                }
            };

            commandHandler.Handle(drinksOrder);

            _messageBus.Received().RaiseEvent(Arg.Any <DrinksOrdered>());
        }
Пример #2
0
        public void When_order_drinks_command_raised_with_no_open_tab()
        {
            _eventRepository.GetEventsFor(_aggregateId).Returns(new List <IDomainEvent>());

            var commandHandler = new OrderDrinksCommandHandler(_eventRepository, _messageBus);
            var drinksOrder    = new OrderDrinks
            {
                AggregateId = _aggregateId,
                OrderItems  = new List <OrderItem>
                {
                    new OrderItem
                    {
                        Name  = "Coke (pint)",
                        Price = 2.0m
                    }
                }
            };

            Action handle = () => commandHandler.Handle(drinksOrder);

            handle.Should().Throw <NullAggregateException>();
        }