Exemplo n.º 1
0
        public static void SetReservedProviderInfoForTests(TestContext testContext)
        {
            ADMIN_USER = new User("Brulu", ADMIN_USER_USEREMAIL, "HOLA1234", AdminRole.GetInstance());
            List <IField> emptyFields = new List <IField>();
            TextField     field       = new TextField("NumeroCliente");

            emptyFields.Add(field);
            DESIGNED_PROVIDER = new Provider("Apple", 3, emptyFields);
            ProvidersController providerController = new ProvidersController(ADMIN_USER.Email);

            providerController.PostProvider(DESIGNED_PROVIDER);
            IHttpActionResult actionResultProvider = providerController.GetProviders();
            OkNegotiatedContentResult <IEnumerable <Provider> > contentResult = (OkNegotiatedContentResult <IEnumerable <Provider> >)actionResultProvider;
            IEnumerable <Provider> providers = contentResult.Content;

            foreach (Provider provider in providers)
            {
                if (provider.Name.Equals(DESIGNED_PROVIDER.Name))
                {
                    DESIGNED_PROVIDER.ID = provider.ID;
                }
            }
            providerController.Dispose();
            FIRST_PAYMENT  = CreateFirstPayment();
            SECOND_PAYMENT = CreateNewRandomPayment();
            CONTROLLER     = new PaymentsController(ADMIN_USER_USEREMAIL);
            CONTROLLER.PostPayment(FIRST_PAYMENT);
            CONTROLLER.PostPayment(SECOND_PAYMENT);
            CONTROLLER.Dispose();
        }
Exemplo n.º 2
0
        public async Task TestPostPaymentValid()
        {
            // Arrange
            var mockPaymentRepo  = new Mock <IPaymentRepository>();
            var mockCustomerRepo = new Mock <ICustomerRepository>();
            var paymentDTO       = CreatePaymentData();

            mockPaymentRepo.Setup(repo => repo.GetPaymentFromCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO);
            mockCustomerRepo.Setup(repo => repo.GetCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO.Customer);

            // Act
            var controller = new PaymentsController(mockPaymentRepo.Object, mockCustomerRepo.Object);

            SimulateModelValidation.Validate(mockPaymentRepo, controller);
            var result = await controller.PostPayment(paymentDTO);

            // Assert
            var okResult = Assert.IsType <CreatedAtActionResult>(result);
            var res      = Assert.IsType <Payment>(okResult.Value);
            var idea     = res as Payment;

            Assert.Equal(1, idea.PaymentId);
            Assert.NotNull(idea.Customer);
            Assert.NotNull(idea.Domain);
            Assert.Equal(GetLastDayOfMonth(), idea.DueDate);
            Assert.Equal(PaymentStatus.CREATED, idea.Status);
        }
Exemplo n.º 3
0
        private void Payments_Load(object sender, EventArgs e)
        {
            if (CryptoController.GetUserCrypto(user.RsaID) == null)
            {
                userCrypto = new Crypto("", "", 0, "", user.RsaID);
            }
            else
            {
                userCrypto = CryptoController.GetUserCrypto(user.RsaID);
            }
            history   = HistoryController.getHistory(user.RsaID);
            scheduals = PaymentsController.GetPayments(user.RsaID);

            foreach (Payment item in history)
            {
                ALLPAY.Add(item);
            }
            foreach (Payment item in scheduals)
            {
                ALLPAY.Add(item);
            }

            BeneficairyList        = BeneficiaryController.GetBeneficiarys(user.RsaID);
            UserPaymentAccountList = PaymentsAccountController.SearchUserPaymentAcount(user.RsaID);
            UserCardList           = CardController.RetrveCards(user.RsaID);
            FillBeneficiaryDatagrid(BeneficairyList);

            popUcb();
        }
Exemplo n.º 4
0
        private void btnExacuteAllPayment_Click(object sender, EventArgs e)
        {
            bool           issusck    = false;
            List <Payment> newpaylist = PaymentList;

            foreach (Payment item in newpaylist)
            {
                if (PaymentsController.AddPyaments(item))
                {
                    foreach (Payment item1 in PaymentList)
                    {
                        if (item.PaymentNumber == item1.PaymentNumber)
                        {
                            item1.Status = "Pending";
                        }
                        else
                        {
                            item1.Status = "Failed";
                        }
                    }
                }
            }
            if (issusck == false)
            {
                MetroMessageBox.Show(this, "Unable to retrieve data from server, Server is offline!", "Connection Issues");
            }
            else
            {
                MetroMessageBox.Show(this, "Payment Scheduled Successfully!", "Success");
            }

            FillPaymentDatagrid(PaymentList);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Successful response returned from a Credit Card Present Include Tip AuthorizationOnly request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#includetip
        /// </summary>
        public int Credit_Card_Present_IncludeTip_AuthorizationOnly_Request_Returns_Successfully()
        {
            // Arrange
            var request = new AuthorizeRequest
            {
                Amount = 17.00m,
                Card   = new Card
                {
                    TrackData = "%B4444333322221111^SECURENET^16041015432112345678?;4444333322221111=16041015432112345678?"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <AuthorizeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Transaction);
            Assert.IsTrue(response.Transaction.TransactionId > 0);

            return(response.Transaction.TransactionId);
        }
        /// <summary>
        /// Successful response returned from a Credit Card Present Authorization Only request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#authonly
        /// </summary>
        public int Credit_Card_Present_AuthorizationOnly_Request_Returns_Successfully()
        {
            // Arrange
            var request = new AuthorizeRequest
            {
                Amount = 11.00m,
                Card = new Card
                {
                    TrackData = "%B4444333322221111^SECURENET^16041015432112345678?;4444333322221111=16041015432112345678?",
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<AuthorizeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Transaction);
            Assert.IsTrue(response.Transaction.TransactionId > 0);

            return response.Transaction.TransactionId;
        }
Exemplo n.º 7
0
        private void Schedules_Load(object sender, EventArgs e)
        {
            BeneficairyList = BeneficiaryController.GetBeneficiarys(user.RsaID);
            PaymentListF    = PaymentsController.GetPayments(user.RsaID);
            foreach (Payment item in PaymentListF)
            {
                //DateTime payDate = DateTime.ParseExact(item.PayDate, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

                //if (payDate > DateTime.Now || item.Recurring == true)
                //{
                PaymentList.Add(item);
                //}
            }
            if (CryptoController.GetUserCrypto(user.RsaID) != null)
            {
                userCrypto = CryptoController.GetUserCrypto(user.RsaID);
            }
            else
            {
                userCrypto = new Crypto("", "", 0, "", user.RsaID);
            }


            UserPaymentAccountList = PaymentsAccountController.SearchUserPaymentAcount(user.RsaID);
            UserCardList           = CardController.RetrveCards(user.RsaID);
            FillPaymentsDatagrid(PaymentList);
            BeneficairyList = BeneficiaryController.GetBeneficiarys(user.RsaID);
            FillBeneficiaryDatagrid(BeneficairyList);
            popUcb();
        }
        public void TestPaymentDetailsSaved()
        {
            // We do not need to do this step if the payment was saved in database with a identity or primary key.
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            PaymentModel model = new PaymentModel
            {
                AccountName   = "Test",
                AccountNumber = 12345678,
                Amount        = 200.00M,
                BSB           = 123456,
                Currency      = "AUD",
                Reference     = "None"
            };

            PaymentsController pc = new PaymentsController();

            pc.Request       = new HttpRequestMessage();
            pc.Configuration = new System.Web.Http.HttpConfiguration();
            HttpResponseMessage response = pc.Post(model);

            Assert.IsTrue(response.IsSuccessStatusCode);

            var savedPayment = ReadContentFromFile();

            Assert.AreEqual(model.AccountNumber, savedPayment.AccountNumber);
        }
        public void Setup()
        {
            _dbSetUpHelper = new DatabaseSetUpHelper();
            _context       = _dbSetUpHelper.GetContext();

            _paymentsRepository     = new PaymentsRepository(_context);
            _userPaymentsRepository = new UserPaymentsRepository(_context);
            _flatRepository         = new FlatRepository(_context);
            _userRepository         = new UserRepository(_context);

            _mapperHelper = new MapperHelper();
            var mapper = _mapperHelper.GetMapper();

            DefaultHttpContext httpContext = new DefaultHttpContext();
            GenericIdentity    MyIdentity  = new GenericIdentity("User");
            ClaimsIdentity     objClaim    = new ClaimsIdentity(new List <Claim> {
                new Claim(ClaimTypes.NameIdentifier, "1")
            });

            _paymentsController = new PaymentsController(_paymentsRepository, _userPaymentsRepository, _flatRepository, _userRepository, mapper)
            {
                ControllerContext = new ControllerContext()
            };
            _paymentsController.ControllerContext.HttpContext = httpContext;
            httpContext.User = new ClaimsPrincipal(objClaim);
        }
Exemplo n.º 10
0
        public void UpdatePayment()
        {
            var context = serviceProvider.GetRequiredService <DataContext>();

            var controller = new PaymentsController(context);

            context.Payment.Add(payment1);
            context.SaveChanges();

            //The entity is not being tracked by the context
            context.Entry(payment1).State = EntityState.Detached;

            Payment payment3 = new Payment
            {
                Id          = 1,
                Amount      = 9000,
                Currency    = "$",
                Source      = "Balanica Gabriel",
                Date        = new DateTime(2020, 12, 30),
                Destination = "Spantu Theodor Ioan",
                Status      = "complete",
                latitude    = 93.231f,
                longitude   = 44.2f
            };

            var updateResult = controller.PutPayment(1, payment3).Result;

            Assert.IsType <OkResult>(updateResult);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Successful response returned from an Charge using Tokenization request.
        /// https://apidocs.securenet.com/docs/creditcardnotpresent.html?lang=csharp#tokenization
        /// </summary>
        public void Credit_Card_Not_Present_Charge_Using_Tokenization_Request_Returns_Successfully(string token)
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount            = 10.00m,
                PaymentVaultToken = new PaymentVaultToken
                {
                    PaymentMethodId = token,
                    PublicKey       = "278DCC4B-85FE-485D-AFDD-9927AC4CA229"
                },
                AddToVault          = true,
                ExtendedInformation = new ExtendedInformation
                {
                    TypeOfGoods = "PHYSICAL"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 12
0
        public void ACH_Paying_By_Check_With_Verification_Charge_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 10.00m,
                Check  = new Check
                {
                    FirstName     = "Jack",
                    LastName      = "Test",
                    RoutingNumber = "222371863",
                    AccountNumber = "123456",
                    Verification  = "ACH_PROVIDER"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 13
0
        public void Credits_Credit_An_Account_Request_Returns_Successfully()
        {
            // Arrange
            var request = new CreditRequest
            {
                Amount = 1.05m,
                Card   = new Card
                {
                    Number         = "4111 1111 1111 1111",
                    ExpirationDate = "01/2017"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <CreditResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 14
0
        public void Credit_Card_Present_Charge_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 11.00m,
                Card   = new Card
                {
                    TrackData = "%B4444333322221111^SECURENET^16041015432112345678?;4444333322221111=16041015432112345678?"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Successful response returned from a Credit Card Present IncludTip PriorAuthCapture request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#includetip
        /// </summary>
        public void Credit_Card_Present_IncludeTip_PriorAuthCapture_Request_Returns_Successfully(int transactionId)
        {
            // Arrange
            var request = new PriorAuthCaptureRequest
            {
                Amount              = 13.25m,
                TransactionId       = transactionId,
                ExtendedInformation = new ExtendedInformation
                {
                    ServiceData = new ServiceData
                    {
                        GratuityAmount = 1.75m,
                    },
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                },
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <PriorAuthCaptureResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 16
0
        public virtual void Initialize()
        {
            this.requesterContext         = new Mock <IRequesterContext>(MockBehavior.Strict);
            this.getCreditRequestSummary  = new Mock <IQueryHandler <GetCreditRequestSummaryQuery, CreditRequestSummary> >(MockBehavior.Strict);
            this.updatePaymentsOrigin     = new Mock <ICommandHandler <UpdatePaymentOriginCommand> >(MockBehavior.Strict);
            this.applyCreditRequest       = new Mock <ICommandHandler <ApplyCreditRequestCommand> >(MockBehavior.Strict);
            this.deletePaymentInformation = new Mock <ICommandHandler <DeletePaymentInformationCommand> >(MockBehavior.Strict);
            this.createCreditRefund       = new Mock <ICommandHandler <CreateCreditRefundCommand> >(MockBehavior.Strict);
            this.createTransactionRefund  = new Mock <ICommandHandler <CreateTransactionRefundCommand> >(MockBehavior.Strict);
            this.getTransactions          = new Mock <IQueryHandler <GetTransactionsQuery, GetTransactionsResult> >(MockBehavior.Strict);
            this.blockPaymentProcessing   = new Mock <ICommandHandler <BlockPaymentProcessingCommand> >(MockBehavior.Strict);
            this.timestampCreator         = new Mock <ITimestampCreator>(MockBehavior.Strict);
            this.guidCreator = new Mock <IGuidCreator>(MockBehavior.Strict);

            this.requesterContext.Setup(_ => _.GetRequesterAsync()).ReturnsAsync(Requester);

            this.target = new PaymentsController(
                this.requesterContext.Object,
                this.getCreditRequestSummary.Object,
                this.updatePaymentsOrigin.Object,
                this.applyCreditRequest.Object,
                this.deletePaymentInformation.Object,
                this.createCreditRefund.Object,
                this.createTransactionRefund.Object,
                this.getTransactions.Object,
                this.blockPaymentProcessing.Object,
                this.timestampCreator.Object,
                this.guidCreator.Object);
        }
Exemplo n.º 17
0
        public void BeAbleToReturnASinglePaymentInRepository()
        {
            List <IField> emptyFields = new List <IField>();
            NumberField   field       = new NumberField("Monto");

            emptyFields.Add(field);
            IField        filledField = field.FillAndClone("100");
            List <IField> fullFields  = new List <IField>();

            fullFields.Add(filledField);
            Provider       provider = new Provider("Antel", 3, emptyFields);
            Receipt        receipt  = new Receipt(provider, fullFields, 100);
            List <Receipt> list     = new List <Receipt>();

            list.Add(receipt);
            Payment payment            = new Payment(new CashPayMethod(DateTime.Now), 100, list);
            var     mockPaymentService = new Mock <IPaymentService>();

            mockPaymentService.Setup(x => x.GetSinglePayment(payment.ID)).Returns(payment);
            PaymentsController controller = new PaymentsController(mockPaymentService.Object);

            IHttpActionResult actionResult = controller.GetPayment(payment.ID);
            OkNegotiatedContentResult <Payment> contentResult = (OkNegotiatedContentResult <Payment>)actionResult;

            Assert.AreSame(contentResult.Content, payment);
        }
Exemplo n.º 18
0
        public void FailIfPostedNewPaymentIsAlreadyInRepository()
        {
            List <IField> emptyFields = new List <IField>();
            NumberField   field       = new NumberField("Monto");

            emptyFields.Add(field);
            IField        filledField = field.FillAndClone("100");
            List <IField> fullFields  = new List <IField>();

            fullFields.Add(filledField);
            Provider       provider = new Provider("Antel", 3, emptyFields);
            Receipt        receipt  = new Receipt(provider, fullFields, 100);
            List <Receipt> list     = new List <Receipt>();

            list.Add(receipt);
            Payment payment            = new Payment(new CashPayMethod(DateTime.Now), 100, list);
            var     mockPaymentService = new Mock <IPaymentService>();

            mockPaymentService.Setup(x => x.CreatePayment(payment)).Throws(new ArgumentException());
            PaymentsController controller = new PaymentsController(mockPaymentService.Object);

            IHttpActionResult actionResult = controller.PostPayment(payment);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
        }
Exemplo n.º 19
0
        public void Credit_Card_Present_Charge_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 11.00m,
                Card   = new Card
                {
                    TrackData = "%B4444333322221111^SECURENET^17041015432112345678?;4444333322221111=17041015432112345678?"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                },
                ExtendedInformation = new ExtendedInformation
                {
                    SoftDescriptor = Helper.RequestSoftDescriptor,
                    DynamicMCC     = Helper.RequestDynamicMCC
                },
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(response.Transaction.SoftDescriptor, Helper.ResponseSoftDescriptor);
            Assert.AreEqual(response.Transaction.DynamicMCC, Helper.ResponseDynamicMCC);
            Assert.IsTrue(response.Success);
        }
        public async Task Get_PaymentReturns_ReturnsOkResult()
        {
            var mockPaymentRepo        = new Mock <IPaymentRepository>();
            var mockLogger             = new Mock <ILogger <PaymentsController> >();
            var mockMapper             = new Mock <IMapper>();
            var mockBankRequestService = new Mock <IBankRequestService>();
            var mockEncryptionService  = new Mock <IEncryptionService>();

            var mapperResponse = new GetPaymentResponse
            {
                Name          = "Fred Bloggs",
                CardNumber    = "4111111111111111",
                Id            = Guid.NewGuid(),
                PaymentStatus = "Completed"
            };

            mockPaymentRepo.Setup(x => x.GetPaymentAsync(It.IsAny <Guid>())).ReturnsAsync(() => new Payment());
            mockMapper.Setup(x => x.Map <GetPaymentResponse>(It.IsAny <Payment>())).Returns(mapperResponse);
            mockEncryptionService.Setup(x => x.Decrypt(It.IsAny <byte[]>())).Returns("4111111111111111");

            var paymentsController = new PaymentsController(mockPaymentRepo.Object, mockBankRequestService.Object, mockEncryptionService.Object, mockMapper.Object, mockLogger.Object);

            var response = await paymentsController.Get(Guid.NewGuid());

            var okResponse         = Assert.IsType <OkObjectResult>(response);
            var getPaymentResponse = Assert.IsType <GetPaymentResponse>(okResponse.Value);

            Assert.Equal(mapperResponse.CardNumber.MaskCard(), getPaymentResponse.CardNumber);
            Assert.Equal(mapperResponse.Name, getPaymentResponse.Name);
            Assert.Equal(mapperResponse.Id, getPaymentResponse.Id);
            Assert.Equal(mapperResponse.PaymentStatus, getPaymentResponse.PaymentStatus);
        }
Exemplo n.º 21
0
        public void FailIfSinglePaymentIdDoesntExistInRepository()
        {
            List <IField> emptyFields = new List <IField>();
            NumberField   field       = new NumberField("Monto");

            emptyFields.Add(field);
            IField        filledField = field.FillAndClone("100");
            List <IField> fullFields  = new List <IField>();

            fullFields.Add(filledField);
            Provider       provider = new Provider("Antel", 3, emptyFields);
            Receipt        receipt  = new Receipt(provider, fullFields, 100);
            List <Receipt> list     = new List <Receipt>();

            list.Add(receipt);
            Payment payment            = new Payment(new CashPayMethod(DateTime.Now), 100, list);
            var     mockPaymentService = new Mock <IPaymentService>();

            mockPaymentService.Setup(x => x.GetSinglePayment(payment.ID + 1)).Throws(new ArgumentOutOfRangeException());
            PaymentsController controller = new PaymentsController(mockPaymentService.Object);

            IHttpActionResult actionResult = controller.GetPayment(payment.ID + 1);

            Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
        }
Exemplo n.º 22
0
        public void Credits_Credit_An_Account_Request_Returns_Successfully()
        {
            // Arrange
            var request = new CreditRequest
            {
                Amount = 10,
                Card   = new Card
                {
                    Number         = "4444 3333 2222 1111",
                    ExpirationDate = "01/2017"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                },
                ExtendedInformation = new ExtendedInformation
                {
                    SoftDescriptor = Helper.RequestSoftDescriptor,
                    DynamicMCC     = Helper.RequestDynamicMCC
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <CreditResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(response.Transaction.SoftDescriptor, Helper.ResponseSoftDescriptor);
            Assert.AreEqual(response.Transaction.DynamicMCC, Helper.ResponseDynamicMCC);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 23
0
        public void Show_Log_After_Payment()
        {
            //Arrange
            var context    = serviceProvider.GetService <ApplicationDbContext>();
            var controller = serviceProvider.GetService <PaymentsController>();
            var loggerMock = new Mock <ILogger <ManageController> >();
            var emailMock  = new Mock <IEmailSender>();

            controller = new PaymentsController(context, null, null, emailMock.Object, loggerMock.Object, null, null);

            PaymentViewModel user = new PaymentViewModel()
            {
                Email = "*****@*****.**",
            };

            //Act
            controller.Receipt(3, 100, user);

            //Assert
            loggerMock.Verify(
                m => m.Log(
                    LogLevel.Critical,
                    It.IsAny <EventId>(),
                    It.Is <FormattedLogValues>(v => v.ToString().Contains("To: [email protected], Subject: Confirmation of payment, Message: Thank you for your order!")),
                    It.IsAny <Exception>(),
                    It.IsAny <Func <object, Exception, string> >()
                    )
                );
        }
        public void Setup()
        {
            _dbSetUpHelper     = new DatabaseSetUpHelper();
            _context           = _dbSetUpHelper.GetContext();
            _httpContextHelper = new HttpContextHelper();

            _paymentsRepository     = new PaymentsRepository(_context);
            _userPaymentsRepository = new UserPaymentsRepository(_context);
            _flatRepository         = new FlatRepository(_context);
            _userRepository         = new UserRepository(_context);

            _mapperHelper = new MapperHelper();
            var mapper = _mapperHelper.GetMapper();

            var httpContext = _httpContextHelper.GetHttpContext();
            var objClaim    = _httpContextHelper.GetClaimsIdentity();

            _paymentsController = new PaymentsController(_paymentsRepository, _userPaymentsRepository, _flatRepository, _userRepository, mapper)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = httpContext
                }
            };
            httpContext.User = new ClaimsPrincipal(objClaim);
        }
Exemplo n.º 25
0
        public PaymentProcessorTest()
        {
            _controller = new PaymentsController(_paymentProcessor);

            var services = new ServiceCollection();

            services.AddTransient <IRestIntegration, RestIntegration>();

            services.AddTransient <IPaymentRepository, PaymentRepository>();

            services.AddTransient <IPaymentStateRepository, PaymentStateRepository>();

            services.AddTransient <IUnitOfWork, UnitOfWork>();

            services.AddAutoMapper(typeof(Startup));

            var mappingConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new PaymentProfile());
            });
            IMapper mapper = mappingConfig.CreateMapper();

            services.AddSingleton(mapper);

            services.AddTransient <IPaymentProfile, PaymentProfile>();
            services.AddTransient <IBaseRepo, BaseRepo>();

            services.AddTransient <ICheapPaymentGateway, CheapPaymentGateway>();
            services.AddTransient <IExpensivePaymentGateway, ExpensivePaymentGateway>();
            services.AddTransient <IPremiumPaymentService, PremiumPaymentService>();
            services.AddTransient <IPaymentProcessorLogic, PaymentProcessorLogic>();
            services.AddTransient <IPaymentProcessorLogic, PaymentProcessorLogic>();

            var serviceProvider = services.BuildServiceProvider();
        }
        public async Task Webhook_Returns200_WhenWebhookSecretIsCorrect()
        {
            var stripeOptions = new StripeOptionsMock();
            var jwtToken      = new JwtToken()
            {
                UserId      = "google|patryk1",
                AccessToken = "accessToken",
            };
            UserManagementServiceMock userManagementServiceMock = new UserManagementServiceMock();
            StripePaymentServiceMock  stripePaymentServiceMock  = new StripePaymentServiceMock();

            StripeEventHandlerService stripeEventHandlerService = new StripeEventHandlerService(userManagementServiceMock, stripeOptions, stripePaymentServiceMock);

            var controller = new PaymentsController(jwtToken, stripeEventHandlerService, userManagementServiceMock, null);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    Request =
                    {
                        Headers =
                        {
                            new KeyValuePair <string, StringValues>("Stripe-Signature", "whsec_g6pND8HOaUZaNpk0uUiUlTKzZP8LomW9")
                        }
                    }
                }
            };

            var result = await controller.Webhook();

            Assert.IsType <BadRequestResult>(result);
        }
 public void SetupTests()
 {
     this._paymentProcessingService = new Mock <IPaymentsProcessingService>();
     this._paymentRetrievalService  = new Mock <IPaymentsRetrievalService>();
     this._logger     = new Mock <ILogger <PaymentsController> >();
     this._controller = new PaymentsController(this._paymentProcessingService.Object, this._paymentRetrievalService.Object, this._logger.Object);
 }
Exemplo n.º 28
0
        public async Task RegisterNewPayment_CheckFunctionality()
        {
            var altering = new Altering
            {
                CustomerId = 1
            };

            dbContext.Alterings.Add(altering);
            dbContext.SaveChanges();

            var mock = new Mock <IBus>();

            mock.Setup(x => x.Publish(new OrderPaid {
                AlterationId = altering.Id
            }, default)).Returns(() =>
            {
                return(Task.CompletedTask);
            });
            controller = new PaymentsController(new AzureBasedMicroserviceContext(), mock.Object);

            var data = new NewPaymentViewModel
            {
                AlteringId = altering.Id,
                Amount     = 1000
            };
            var result = await controller.RegisterNewPayment(data);

            Assert.IsTrue((result as OkResult) != null, "It should return OkResult with valid AlterationId");


            removeAlterationFromDb(altering.Id);
            removePaymentFromDb(altering.Id);
        }
Exemplo n.º 29
0
        public void Create_ValidPaymentDetails_PaymentDetailsAppended()
        {
            //Arrange
            var confMock = new Mock <IConfiguration>();

            confMock.Setup(x => x["PaymentInfoPath"]).Returns(@"E:\Logs.txt");
            using (var writer = new StreamWriter(@"E:\Logs.txt"))
            {
                writer.Flush();
            }

            var loggerMock         = Mock.Of <ILogger <PaymentsController> >();
            PaymentsController sut = new PaymentsController(loggerMock, confMock.Object);

            //Act
            PaymentInfo model1 = new PaymentInfo()
            {
                AccountName   = "ABC XYZ",
                AccountNumber = "123456789",
                BSBNumber     = "987654",
                Reference     = 367,
                Amount        = 3400
            };

            sut.Create(model1);

            PaymentInfo model2 = new PaymentInfo()
            {
                AccountName   = "New Person",
                AccountNumber = "3432432423",
                BSBNumber     = "456-656",
                Reference     = 2322222,
                Amount        = 670
            };

            sut.Create(model2);

            //Assert
            Assert.Contains("has been completed successfully.", sut.ViewBag.Message);
            using (var reader = new StreamReader(@"E:\Logs.txt"))
            {
                var fileData = reader.ReadToEnd();
                Assert.Contains($"The below transaction was done successfully at {DateTime.Now.Date.ToString("M/d/yyyy")}", fileData);

                //file contains first set of payment data
                Assert.Contains("Account Name : ABC XYZ", fileData);
                Assert.Contains("Account Number : 123456789", fileData);
                Assert.Contains("BSB Number : 987654", fileData);
                Assert.Contains("Amount : 3400$", fileData);
                Assert.Contains("Reference : 367", fileData);

                //same file contains second set of payment data
                Assert.Contains("Account Name : New Person", fileData);
                Assert.Contains("Account Number : 3432432423", fileData);
                Assert.Contains("BSB Number : 456-656", fileData);
                Assert.Contains("Amount : 670", fileData);
                Assert.Contains("Reference : 2322222", fileData);
            }
        }
Exemplo n.º 30
0
 public PaymentsControllerTests()
 {
     _service          = new Mock <IPaymentService>();
     _mapper           = new Mock <IMapper>();
     _processValidator = new Mock <IValidator <ProcessPaymentResource> >();
     _controller       = new PaymentsController(_mapper.Object, _processValidator.Object, _service.Object);
     _context          = new Mock <ClaimsPrincipal>();
 }
Exemplo n.º 31
0
 protected PaymentsControllerFixture()
 {
     SUT = new PaymentsController(
         PaymentManagerMock.Object,
         CreatePaymentValidatorMock.Object,
         TelemetrySubmitterMock.Object,
         LoggerMock.Object);
 }
        public void ACH_Add_Billing_Address_Charge_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 10.00m,
                Check = new Check
                {
                    FirstName = "Jack",
                    LastName = "Test",
                    RoutingNumber = "222371863",
                    AccountNumber = "123456",
                    Address = new Address
                    {
                        Line1 = "123 Main St.",
                        City = "Austin",
                        State = "TX",
                        Zip = "78759"
                    },
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        /// <summary>
        /// Successful response returned from a Credit Card Present PriorAuthCapture request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#priorauth
        /// </summary>
        public void Credit_Card_Present_PriorAuthCapture_Request_Returns_Successfully(int transactionId)
        {
            // Arrange
            var request = new PriorAuthCaptureRequest
            {
                Amount = 11.00m,
                TransactionId = transactionId, 
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                },
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<PriorAuthCaptureResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        public void Credits_Credit_An_Account_Request_Returns_Successfully()
        {
            // Arrange
            var request = new CreditRequest
            {
                Amount = 1.05m,
                Card = new Card
                {
                    Number = "4111 1111 1111 1111",
                    ExpirationDate = "01/2017"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<CreditResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        /// <summary>
        /// Successful response returned from an Charge using Tokenization request.
        /// https://apidocs.securenet.com/docs/creditcardnotpresent.html?lang=csharp#tokenization
        /// </summary>
        public void Credit_Card_Not_Present_Charge_Using_Tokenization_Request_Returns_Successfully(string token)
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 10.00m,
                PaymentVaultToken = new PaymentVaultToken
                {
                    PaymentMethodId = token,
                    PublicKey = "278DCC4B-85FE-485D-AFDD-9927AC4CA229"
                },
                AddToVault = true,
                ExtendedInformation = new ExtendedInformation
                {
                    TypeOfGoods = "PHYSICAL"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        /// <summary>
        /// Successful response returned from a Credit Card Not Present Authorization Only request.
        /// https://apidocs.securenet.com/docs/creditcardnotpresent.html?lang=JSON#authonly
        /// </summary>
        public int Credit_Card_Not_Present_AuthorizationOnly_Request_Returns_Successfully()
        {
            // Arrange
            var request = new AuthorizeRequest
            {
                Amount = 11.00m,
                Card = new Card
                {
                    Number = "4444 3333 2222 1111",
                    Cvv = "999",
                    ExpirationDate = "04/2016",
                    Address = new Address
                    {
                        Line1 = "123 Main St.",
                        City = "Austin",
                        State = "TX",
                        Zip = "78759"
                    },
                    FirstName = "Jack",
                    LastName = "Test"
                },
                ExtendedInformation = new ExtendedInformation
                {
                    TypeOfGoods = "PHYSICAL"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<AuthorizeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Transaction);
            Assert.IsTrue(response.Transaction.TransactionId > 0);

            return response.Transaction.TransactionId;
        }
        public void Credit_Card_Present_Charge_Request_Including_Address_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 11.00m,
                Card = new Card
                {
                    Number = "4444 3333 2222 1111",
                    Cvv = "999",
                    ExpirationDate = "04/2016",
                    Address = new Address
                    {
                        Line1 = "123 Main St.",
                        City = "Austin",
                        State = "TX",
                        Zip = "78759"
                    }
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        /// <summary>
        /// Successful response returned from a Credit Card Present IncludTip PriorAuthCapture request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#includetip
        /// </summary>
        public void Credit_Card_Present_IncludeTip_PriorAuthCapture_Request_Returns_Successfully(int transactionId)
        {
            // Arrange
            var request = new PriorAuthCaptureRequest
            {
                Amount = 13.25m,
                TransactionId = transactionId,
                ExtendedInformation = new ExtendedInformation
                {
                    ServiceData = new ServiceData
                    {
                        GratuityAmount = 1.75m,
                    },
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                },
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<PriorAuthCaptureResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        public void ACH_Charge_Account_Using_POS_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 11.00m,
                Check = new Check
                {
                    FirstName = "Jack",
                    LastName = "Test",
                    RoutingNumber = "222371863",
                    AccountNumber = "147852",
                    CheckNumber = "107",
                    AccountType = "SAVINGS",
                    CheckType = "POINT_OF_SALE",
                    Verification = "NONE",
                },
                ExtendedInformation = new ExtendedInformation
                {
                    AdditionalTerminalInfo = new AdditionalTerminalInfo
                    {
                        TerminalId = "1234",
                        TerminalCity = "Austin",
                        TerminalState = "TX",
                        TerminalLocation = "Office",
                        StoreNumber = "452"
                    }
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        /// <summary>
        /// Successful response returned from a Void Transaction request.
        /// https://apidocs.securenet.com/docs/voids.html?lang=csharp
        /// </summary>
        public void Voids_Void_Transaction_Request_Returns_Successfully(int transactionId)
        {
            // Arrange
            var request = new VoidRequest
            {
                TransactionId = transactionId,
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<VoidResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }
        public void ACH_Pay_By_Check_Charge_Request_Returns_Successfully()
        {
            // Arrange
            var request = new ChargeRequest
            {
                Amount = 10.00m,
                Check = new Check
                {
                    FirstName = "Jack",
                    LastName = "Test",
                    RoutingNumber = "222371863",
                    AccountNumber = "123456"
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest<ChargeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
        }