示例#1
0
        public void ProcessOrder__InvalidPaymentGateway_ThrowsException()
        {
            //Arrange
            var orderData = new OrderRequestDataBuilder().Build();

            orderData.PaymentGateway = PaymentGatewayEnum.InvalidGatewayIdForTests;
            SetupProcessPaymentData(orderData);

            //Act and assert
            Assert.ThrowsException <InvalidOperationException>(() => processOrderOperation.ProcessOrder(orderData));
        }
示例#2
0
        public void ProcessOrder_ValidOrder_OrderResponse()
        {
            //Arrange
            var orderData = new OrderRequestDataBuilder().Build();

            SetupProcessPaymentData(orderData);

            //Act
            var orderResponse = processOrderOperation.ProcessOrder(orderData);

            //Assert
            paymentGatewayServiceMock.Verify(x => x.ProcessPaymentData(It.IsAny <ProcessOrderRequestData>()), Times.Once);
            Assert.AreEqual(orderData.OrderNumber, orderResponse.OrderNumber);
            Assert.AreEqual(orderData.UserId, orderResponse.UserId);
            Assert.IsNotNull(orderResponse.ReceiptData);
        }
示例#3
0
        public void ProcessOrder__GatewayServiceFailure_OrderResponseWithErrorMessage()
        {
            //Arrange
            var orderData = new OrderRequestDataBuilder().Build();

            SetupMock(orderData, null);

            //Act
            var orderResponse = processOrderOperation.ProcessOrder(orderData);

            //Assert
            Assert.IsNotNull(orderResponse.ErrorMessage);
            Assert.IsNotNull(orderResponse.OrderNumber);
            Assert.IsNotNull(orderResponse.UserId);
            Assert.IsNull(orderResponse.ReceiptData);
            Assert.IsFalse(orderResponse.PaymentAccepted);
        }