Пример #1
0
 public void ProcessOrder(Order order, IEventPublisher eventPublisher)
 {
     if (Equals(order.ServiceType, ServiceType.Delivery))
     {
         eventPublisher.Publish(new OrderNeedsDelivery(this));
     }
 }
Пример #2
0
        public void Should_Create_Instance_Of_Order_With_TakeOut()
        {
            //Arrange
            // _mockEventPublisher.Setup(x => x.Publish(It.IsAny<IDomainEvent>())).Callback(() => new OrderNeedsDelivery(It.IsAny<Order>()));

            //Act
            var pizza = new Pizza(
                PizzaMocks.ToppingMocks().ToList(),
                PizzaMocks.SizeMocks().First(),
                PizzaMocks.BreadMocks().ElementAt(1),
                PizzaMocks.GetSauce().ElementAt(1),
                PizzaMocks.GetCheese().ElementAt(2)
                );
            var pizzas = new List<Pizza> { pizza };
            var sut = new Order(ServiceType.TakeOut, pizzas, "Jose");
            sut.ProcessOrder(sut, _mockEventPublisher.Object);

            //Assert
            _mockEventPublisher.VerifyAll();
            _mockEventPublisher.Verify(x => x.Publish(It.IsAny<IDomainEvent>()), Times.Never);
            Assert.IsInstanceOf<Order>(sut);
            Assert.AreEqual(sut.ServiceCharge, 0);
            Assert.Greater(sut.SubTotal, 0);
            Assert.AreEqual(sut.ServiceCharge + sut.SubTotal, sut.TotalAmount);
        }