Пример #1
0
        public async Task CanGenerateTransactionReference()
        {
            HostingEnvironment hostEnvironment = new HostingEnvironment();

            hostEnvironment.ContentRootPath         = "C:\\Users\\LENOVO\\Documents\\Repositories\\lms-gateway\\src\\Presentation\\LmsGateway.Web";
            hostEnvironment.ContentRootFileProvider = new PhysicalFileProvider(hostEnvironment.ContentRootPath);
            hostEnvironment.EnvironmentName         = "Development";

            Startup           startup = new Web.Startup(hostEnvironment);
            ServiceCollection sc      = new ServiceCollection();

            startup.ConfigureServices(sc);

            IServiceProvider       serviceProvider       = sc.BuildServiceProvider();
            ITransactionLogService transactionLogService = serviceProvider.GetService <ITransactionLogService>();
            IGatewayLuncher        gatewayLuncher        = serviceProvider.GetService <IGatewayLuncher>();
            ISettingService        settingService        = serviceProvider.GetService <ISettingService>();
            IWidgetProvider        widgetProvider        = serviceProvider.GetService <IWidgetProvider>();

            var transactionRef = new TransactionReference(transactionLogService, gatewayLuncher, settingService, widgetProvider);
            var response       = await transactionRef.InvokeAsync();

            var result = (ViewViewComponentResult)response;

            //Assert.NotNull(result);
            //Assert.NotNull(response);
            //Assert.IsType<ViewViewComponentResult>(response);
            //Assert.IsType<string>(result.ViewData.Model);
        }
Пример #2
0
        public async Task CanGenerateTransactionReference_Unit()
        {
            PaystackSetting paystackSetting = new PaystackSetting()
            {
                UsePublicKey    = false,
                ApiBaseUrl      = "https://api.paystack.co/",
                ReferencePrefix = "PV",
                PublicKey       = "pk_test_0b413fb09eeb29832cded5a56918a0f5f6a4c2f0",
                SecretKey       = "sk_test_6ce9543acf5dd68127387f49ce437f7f82aafb47",

                ListTransactionEndPoint       = "/transaction",
                VerifyTransactionEndPoint     = "/transaction/verify/",
                FetchTransactionEndPoint      = "/transaction/",
                InitializeTransactionEndPoint = "/transaction/initialize",
                TransactionTotalEndPoint      = "/transaction/totals",
                FetchSettlementsEndPoint      = "/settlement",

                APIAcceptHeaderKey          = "accept",
                APIAcceptHeaderValue        = "application/json",
                APIAuthorizationHeaderKey   = "Authorization",
                APIAuthorizationHeaderValue = "Bearer",

                APIFromQueryParameterKey   = "from",
                APIToQueryParameterKey     = "to",
                APIAmountQueryParameterKey = "amount",
                APIStatusQueryParameterKey = "status",

                APIReferenceParameterKey    = "reference",
                APIAmountParameterKey       = "amount",
                APICallbackUrlParameterKey  = "callback_url",
                APIEmailParameterKey        = "email",
                APICustomFieldsParameterKey = "custom_fields",
                APIMetaDataParameterKey     = "metadata",

                TransactionSearchDateFormat = "yyyy-MM-dd",
            };

            string tranxRef = "099885321155456";
            PaystackTransactionLog transactionLog = new PaystackTransactionLog()
            {
                Reference       = tranxRef,
                TransactionDate = DateTime.UtcNow,
            };

            _settingService.Setup(x => x.GetSetting <PaystackSetting>()).Returns(Task.FromResult(paystackSetting));
            _gatewayLuncher.Setup(x => x.CreateTransactionRef(paystackSetting.ReferencePrefix)).Returns(Task.FromResult(tranxRef));
            _transactionLogService.Setup(x => x.SaveAsync(transactionLog)).Verifiable();

            var transactionRef = new TransactionReference(_transactionLogService.Object, _gatewayLuncher.Object, _settingService.Object, _widgetProvider.Object);
            var response       = await transactionRef.InvokeAsync();

            var result = (ViewViewComponentResult)response;

            Assert.NotNull(result);
            Assert.NotNull(response);
            Assert.IsType <ViewViewComponentResult>(response);
            Assert.IsType <string>(result.ViewData.Model);
        }