예제 #1
0
        public void PostShouldValidateParametersAndThrowException(decimal amount, long cardNumber, int ccv, int merchantId)
        {
            var paymentRequest = new MerchantPaymentDetailsRequest()
            {
                MerchantId = merchantId,
                Payment    = new PaymentDetails()
                {
                    Amount     = amount,
                    CardNumber = cardNumber,
                    CCV        = ccv,
                    Timestamp  = DateTime.MaxValue
                }
            };

            var payment = new MerchantPaymentDetails(paymentRequest);

            var paymentService = new Mock <IPaymentService>();

            paymentService.Setup(ps => ps.ProcessPayment(It.IsAny <MerchantPaymentDetails>()))
            .Returns(Task.FromResult <MerchantTransactionPayment>(null));

            var sut = new Controllers.PaymentController(paymentService.Object);

            Assert.Throws <AggregateException>(() =>
            {
                var result = sut.Post(paymentRequest).Result;
            });

            paymentService.Verify(ps => ps.ProcessPayment(
                                      It.IsAny <MerchantPaymentDetails>()), Times.Never);
        }
예제 #2
0
        public FileResult TestPDF(string QuoteNo, string PolicyNo, string ProductCode, string PreferredLanguage, string ISAfc, HttpContextBase context = null)
        {
            //string proposalNo = "50132406";
            //string quoteNo = "Q180006564-01";
            //string planCode = "PPG";
            ReportsController objReportController = new ReportsController();


            byte[] a = objReportController.ReportForIllustrationPDF(QuoteNo, ProductCode, PreferredLanguage, PolicyNo);
            byte[] b = objReportController.ReportForPolicySchedule(PolicyNo, ProductCode, PreferredLanguage);
            byte[] c = null;
            if (ISAfc == "True")
            {
                c = objReportController.ReportForAFCCoveringLetter(PolicyNo, ProductCode, PreferredLanguage);
            }
            else
            {
                c = objReportController.ReportForCoveringLetter(PolicyNo, ProductCode, PreferredLanguage);
            }

            List <byte[]> vs = new List <byte[]>();

            vs.Add(c);
            vs.Add(b);
            vs.Add(a);
            PaymentController objPayment = new Controllers.PaymentController();

            return(File(concatAndAddContent(vs), "application/pdf", PolicyNo + ".pdf"));
        }
        public void CanCalculateChange()
        {
            var payCont = new Controllers.PaymentController(new TillDrawer(Mocks.MockCashSets.StandardSet));

            payCont.PaymentPossible += EventListener;

            payCont.DetermineChange(null, new CustomArgs.ProvideChangeEventArgs(10, 8));

            Assert.IsTrue(EventTriggered);
        }
        public void CanCreatePayout(decimal value)
        {
            var     payCont     = new Controllers.PaymentController(new TillDrawer(Mocks.MockCashSets.StandardSet));
            CashSet standardSet = Mocks.MockCashSets.StandardSet;

            CashSet payout = (CashSet)payCont.Payout(value, standardSet);

            Assert.IsNotNull(payout);
            Assert.AreEqual(value, payout.GetSum());
        }
예제 #5
0
        public void GetAllShouldCallPaymentServiceGetAll()
        {
            var paymentService = new Mock <IPaymentService>();

            paymentService.Setup(ps => ps.GetAllByMerchantId(It.IsAny <int>()))
            .Returns(Task.FromResult <IEnumerable <MerchantTransactionPayment> >(null));

            var merchantId = 1;

            var sut = new Controllers.PaymentController(paymentService.Object);

            var payments = sut.GetAll(merchantId).Result;

            paymentService.Verify(ps => ps.GetAllByMerchantId(
                                      It.Is <int>(i => i == merchantId)), Times.Once);
        }
예제 #6
0
        public void PostShouldCallPaymentServiceProcessPayment()
        {
            var paymentRequest = new MerchantPaymentDetailsRequest()
            {
                MerchantId = 123456,
                Payment    = new PaymentDetails()
                {
                    Amount     = 1,
                    CardNumber = 1234123412341234,
                    CCV        = 123,
                    Timestamp  = DateTime.MaxValue
                }
            };

            var payment = new MerchantPaymentDetails(paymentRequest);

            var transaction = new MerchantTransactionPayment()
            {
                Payment       = payment,
                Status        = PaymentStatus.Success,
                TransactionId = 1
            };

            var paymentService = new Mock <IPaymentService>();

            paymentService.Setup(ps => ps.ProcessPayment(It.IsAny <MerchantPaymentDetails>()))
            .Returns(Task.FromResult(transaction));

            var sut = new Controllers.PaymentController(paymentService.Object);

            var result = sut.Post(paymentRequest).Result;

            Assert.NotNull(result);
            paymentService.Verify(ps => ps.ProcessPayment(
                                      It.Is <MerchantPaymentDetails>(pd =>
                                                                     payment.CardNumber == pd.CardNumber &&
                                                                     payment.CCV == pd.CCV &&
                                                                     payment.Amount == pd.Amount &&
                                                                     payment.MerchantId == pd.MerchantId &&
                                                                     payment.Timestamp == pd.Timestamp
                                                                     )), Times.Once);
        }