public void ProcessOrder(Order order, IEventPublisher eventPublisher) { if (Equals(order.ServiceType, ServiceType.Delivery)) { eventPublisher.Publish(new OrderNeedsDelivery(this)); } }
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); }