コード例 #1
0
        /// <summary>
        /// Gets the payment client token.
        /// </summary>
        /// <returns>The manager response where the payment client token is returned in the Result.</returns>
        public ManagerResponse <PaymentClientTokenResult, string> GetPaymentClientToken()
        {
            var result = new PaymentClientTokenResult {
                Success = false
            };
            var request = new ServiceProviderRequest();

            result = this.PaymentServiceProvider.RunPipeline <ServiceProviderRequest, PaymentClientTokenResult>("commerce.payments.getClientToken", request);

            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return(new ManagerResponse <PaymentClientTokenResult, string>(result, result.ClientToken));
        }
        public void GetBillingInfo_IfGetClientTokenFailed_ShouldReturnsError(
            CartResult cartResult,
            GetPaymentOptionsResult optionsResult,
            GetPaymentMethodsResult methodsResult,
            PaymentClientTokenResult clientTokenResult,
            List <Models.Entities.Payment.PaymentOption> mappedPaymentOptions,
            List <Models.Entities.Payment.PaymentMethod> mappedPaymentMethods,
            SystemMessage systemMessage)
        {
            //arrange
            cartResult.Success = true;
            this.cartManager.LoadCart(Arg.Any <string>(), Arg.Any <string>()).Returns(cartResult);

            optionsResult.Success = true;
            optionsResult.SystemMessages.Add(systemMessage);
            this.paymentManager.GetPaymentOptions(Arg.Any <string>(), Arg.Any <Cart>()).Returns(optionsResult);

            methodsResult.Success = true;
            methodsResult.SystemMessages.Add(systemMessage);
            this.paymentManager.GetPaymentMethods(Arg.Any <Cart>(), Arg.Any <PaymentOption>())
            .Returns(methodsResult);

            this.paymentMapper.Map <IReadOnlyCollection <PaymentOption>, List <Models.Entities.Payment.PaymentOption> >(optionsResult.PaymentOptions)
            .Returns(mappedPaymentOptions);

            this.paymentMapper.Map <IReadOnlyCollection <PaymentMethod>, List <Models.Entities.Payment.PaymentMethod> >(methodsResult.PaymentMethods)
            .Returns(mappedPaymentMethods);

            clientTokenResult.Success = false;
            clientTokenResult.SystemMessages.Add(systemMessage);
            this.paymentManager.GetPaymentClientToken().Returns(clientTokenResult);

            //act
            Result <BillingInfo> result;

            using (new SiteContextSwitcher(this.siteContext))
            {
                result = this.billingService.GetBillingInfo();
            }

            //assert
            Assert.False(result.Success);
            Assert.Equal(systemMessage.Message, result.Errors[0]);
        }