public void BookProcessor_Process_ShouldPayComissionToAgent_WhenOrderIsValid() { var printerMock = new Mock <IPrinter>(); printerMock.Setup(a => a.Print(It.IsAny <string>())); var paymentMock = new Mock <PaymentManager>(); paymentMock.Setup(a => a.Pay(It.IsAny <PaymentDto>())); var processor = new BookProcessor(printerMock.Object, paymentMock.Object); var order = new OrderDto { ProductType = ProductType.Book, Amount = 100, Agent = new AgentDto { FirstName = "Rahul", LastName = "Dravid", Email = "*****@*****.**" } }; var result = processor.Process(order); paymentMock.Verify(a => a.Pay(It.IsAny <PaymentDto>()), Times.Once); }
public void BookProcessor_Process_ShouldProcessTheOrder_WhenOrderIsForBook() { var printerMock = new Mock <IPrinter>(); var paymentMock = new Mock <PaymentManager>(); var processor = new BookProcessor(printerMock.Object, paymentMock.Object); var order = new OrderDto { ProductType = ProductType.Book, Amount = 100, Agent = new AgentDto { FirstName = "Rahul", LastName = "Dravid", Email = "*****@*****.**" } }; var result = processor.Process(order); Assert.AreEqual(OrderStatus.Success, result); }