Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }