Пример #1
0
        public void ReturnCreatedActionResult()
        {
            //Arrange
            var paymentRepo      = new Mock <IPaymentRepository>();
            var profile          = new MerchantPaymentProfile();
            var mapperConfig     = new MapperConfiguration(x => x.AddProfile(profile));
            var paymentPublisher = new Mock <IPaymentPublisher>();

            var mapper = new Mapper(mapperConfig);

            var paymentRequest = new MerchantPaymentRequest
            {
                Amount        = 9.99,
                Currency      = "USD",
                MerchantId    = "1",
                PaymentMethod = new PaymentMethod
                {
                    Cvv             = "123",
                    ExpirationMonth = "05",
                    ExpirationYear  = "2021",
                    Number          = "4319487612345678",
                    PaymentMethodId = new Guid(),
                    Type            = "Visa"
                }
            };


            var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object);

            //Act
            var result = controller.SubmitPayment(paymentRequest);

            //Assert
            Assert.That(result.Result, Is.TypeOf <CreatedAtActionResult>());
        }
Пример #2
0
        public void ReturnMaskedCardNumberToMerchant()
        {
            //Arrange
            var paymentRepo      = new Mock <IPaymentRepository>();
            var profile          = new MerchantPaymentProfile();
            var mapperConfig     = new MapperConfiguration(x => x.AddProfile(profile));
            var paymentPublisher = new Mock <IPaymentPublisher>();

            var mapper = new Mapper(mapperConfig);
            var id     = Guid.NewGuid();

            var payment = new MerchantPayment()
            {
                Id            = id,
                Amount        = 9.99,
                Currency      = "USD",
                MerchantId    = "1",
                PaymentMethod = new PaymentMethod
                {
                    Cvv             = "123",
                    ExpirationMonth = "05",
                    ExpirationYear  = "2021",
                    Number          = "4319487612345678",
                    PaymentMethodId = new Guid(),
                    Type            = "Visa"
                },
                Status = Status.Submitted
            };

            //Act
            paymentRepo.Setup(x => x.GetById(id)).Returns(Task.FromResult(payment));
            var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object);

            var result = controller.GetPayment(id);
            var value  = ((OkObjectResult)result.Result).Value as MerchantPaymentResponse;

            //Assert
            Assert.That(value.Number, Is.EqualTo("XXXXXXXXXXXX5678"));
        }
Пример #3
0
        public void ReturnCorrectValuesInResponse()
        {
            //Arrange
            var paymentRepo      = new Mock <IPaymentRepository>();
            var profile          = new MerchantPaymentProfile();
            var mapperConfig     = new MapperConfiguration(x => x.AddProfile(profile));
            var paymentPublisher = new Mock <IPaymentPublisher>();

            var mapper = new Mapper(mapperConfig);

            var paymentRequest = new MerchantPaymentRequest
            {
                Amount        = 9.99,
                Currency      = "USD",
                MerchantId    = "1",
                PaymentMethod = new PaymentMethod
                {
                    Cvv             = "123",
                    ExpirationMonth = "05",
                    ExpirationYear  = "2021",
                    Number          = "4319487612345678",
                    PaymentMethodId = new Guid(),
                    Type            = "Visa"
                }
            };


            var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object);

            //Act
            var result = controller.SubmitPayment(paymentRequest);
            var value  = ((CreatedAtActionResult)result.Result).Value as MerchantPaymentResponse; //https://github.com/dotnet/AspNetCore.Docs/issues/12533 - ew.

            //Assert
            Assert.That(value.Amount, Is.EqualTo(9.99));
            Assert.That(value.Currency, Is.EqualTo("USD"));
            Assert.That(value.MerchantId, Is.EqualTo("1"));
        }
Пример #4
0
        public void StatusIsSetToADefaultStateOfSubmittedWhenRequestIsMadeByMerchant()
        {
            //Arrange
            var paymentRepo      = new Mock <IPaymentRepository>();
            var profile          = new MerchantPaymentProfile();
            var mapperConfig     = new MapperConfiguration(x => x.AddProfile(profile));
            var paymentPublisher = new Mock <IPaymentPublisher>();

            var mapper = new Mapper(mapperConfig);

            var paymentRequest = new MerchantPaymentRequest
            {
                Amount        = 9.99,
                Currency      = "USD",
                MerchantId    = "1",
                PaymentMethod = new PaymentMethod
                {
                    Cvv             = "123",
                    ExpirationMonth = "05",
                    ExpirationYear  = "2021",
                    Number          = "4319487612345678",
                    PaymentMethodId = new Guid(),
                    Type            = "Visa"
                }
            };


            var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object);

            //Act
            var result = controller.SubmitPayment(paymentRequest);
            var value  = ((CreatedAtActionResult)result.Result).Value as MerchantPaymentResponse;

            //Assert
            Assert.That(value.Status, Is.EqualTo(Status.Submitted));
            Assert.That(value.Status, Is.Not.EqualTo(Status.Declined));
        }