public void TestGetAndSetModelMerchantDetails()
        {
            var merchantDetails = new MerchantDetails
            {
                CustomField1  = "",
                CustomField2  = "",
                CustomField3  = "",
                CustomField4  = "",
                CustomField5  = "",
                CustomField6  = "",
                CustomField7  = "",
                CustomField8  = "",
                CustomField9  = "",
                CustomField10 = "",
                CustomField11 = "",
                CustomField12 = "",
                CustomField13 = "",
                CustomField14 = "",
                CustomField15 = ""
            };

            var paymentRequest = new PaymentRequest(merchantInfo, sessionToken, currency, amount, paymentOptionCard)
            {
                MerchantDetails = merchantDetails
            };
            var paymentResponse = requestExecutor.Payment(paymentRequest).GetAwaiter().GetResult();

            Assert.IsNotNull(paymentResponse);
            Assert.IsEmpty(paymentResponse.Reason);
            Assert.AreEqual(ResponseStatus.Success, paymentResponse.Status);
        }
Пример #2
0
        public async Task <Merchantdata> GetMerchantSettings(string SettingName)
        {
            try
            {
                var app = Application.Current as App;
                Dictionary <string, object> payload = new Dictionary <string, object>();
                payload.Add("access_key", app.SecurityAccessKey);
                payload.Add("phone_number", app.UserPhoneNumber);
                payload.Add("merchant_id", app.Merchantid);
                payload.Add("setting_name", SettingName);
                MerchantDetails robject = await this.Post <MerchantDetails>(this.getMerchantUrl("MerchantAppSettingDetails"), payload, null);

                if (robject.status.ToLower() == "success")
                {
                    return(robject.data.merchantdata);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                try
                {
                    DependencyService.Get <IToastMessage>().LongTime("Error CSD03:Something went wrong. Plese try again. ");
                }
                catch { }
                return(null);
            }
        }
Пример #3
0
 /// <summary>
 /// This will save the merchants details in the database.
 /// </summary>
 /// <param name="id">The id.</param>
 /// <returns> The Connectionstring </returns>
 public static void SaveMerchantDetails(MerchantDetails merchantDetails)
 {
     using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
     {
         cnn.Execute("INSERT OR REPLACE INTO Merchants (Id, Name, CardNumber, Cvv) VALUES (@Id, @Name, @CardNumber, @Cvv)", merchantDetails);
     }
 }
Пример #4
0
        public async Task <Merchantdata> GetMerchantSettings(string SettingName)
        {
            try
            {
                var app = App.Current as App;
                Dictionary <string, object> payload = new Dictionary <string, object>();
                payload.Add("access_key", app.SecurityAccessKey);
                payload.Add("phone_number", app.UserPhoneNumber);
                payload.Add("merchant_id", app.Merchantid);
                payload.Add("setting_name", SettingName);
                MerchantDetails robject = await this.Post <MerchantDetails>(this.getMerchantUrl("MerchantAppSettingDetails"), payload, null);

                if (robject.status.ToLower() == "success")
                {
                    return(robject.data.merchantdata);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                await Application.Current.MainPage.DisplayAlert("Error", e.Message, "ok");

                return(null);
            }
        }
Пример #5
0
 public BankPaymentRequest(CardDetails cardDetails, MerchantDetails merchantDetails, decimal amount, string correlationId)
 {
     base.CorrelationId = correlationId;
     Amount             = amount;
     CardDetails        = cardDetails;
     MerchantDetails    = merchantDetails;
 }
        /// <summary>
        /// Maps to models to bank request payload.
        /// </summary>
        /// <returns>
        /// The <see cref="GetPaymentDetailsResponse" />.
        /// </returns>
        public BankRequestPayload  Map(ProcessPaymentPayload payload, MerchantDetails merchantDetails, bool isPayout)
        {
            this.Amount     = payload.Amount;
            this.Currency   = payload.Currency;
            this.Reference  = payload.Reference;
            this.ExpiryDate = payload.ExpiryDate;

            // set recipeint and sender depending on whether money is sent or received from merchant.
            if (isPayout)
            {
                this.RecipientName       = payload.Name;
                this.RecipientCardNumber = payload.CardNumber;
                this.RecipientCvv        = payload.Cvv;
                this.SenderName          = merchantDetails.Name;
                this.SenderCardNumber    = merchantDetails.CardNumber;
                this.SenderCvv           = merchantDetails.Cvv;
            }
            else
            {
                this.RecipientName       = merchantDetails.Name;
                this.RecipientCardNumber = merchantDetails.CardNumber;
                this.RecipientCvv        = merchantDetails.Cvv;
                this.SenderName          = payload.Name;
                this.SenderCvv           = payload.Cvv;
                this.SenderCardNumber    = payload.CardNumber;
            }

            return(this);
        }
        public async Task RunAsync()
        {
            //string startdate = GeneralHelper.ResetTimeToStartOfDay(new DateTime(2017, 01, 25)).ToString("MM/dd/yyyy HH:mm:ss");
            //string enddate = GeneralHelper.ResetTimeToStartOfDay(new DateTime(2017, 01, 26)).ToString("MM/dd/yyyy HH:mm:ss");

            try
            {
                TokenDetails    objTokenDetails    = new TokenDetails();
                MerchantDetails objMerchantDetails = new MerchantDetails();
                Orders          objOrders          = new Orders();
                MenuItems       objMenuItems       = new MenuItems();
                EmployeeDetails objEmployeeDetails = new EmployeeDetails();

                AuthenticationMethodResultModel result = await objTokenDetails.GetTalechAPI_Token();

                LogHelper.Log("Access token:" + result.access_token + " Expires in:" + result.expires_in + " token_type:" + result.token_type);

                Token.securityToken = result.access_token;

                List <MerchantIdentification_StoreName> lstAllMerchantStoreInformation = await objMerchantDetails.GetAllMerchantStoreDetails();

                LogHelper.Log("Merchant Store Count: " + lstAllMerchantStoreInformation.Count() + " Time: " + DateTime.Now);

                await objMenuItems.GetMenuItemsByCriteria(lstAllMerchantStoreInformation);

                //await objMenuItems.GetMenuUpdatesByCriteria(lstAllMerchantStoreInformation);
                //LogHelper.Log("Menu Item and Category method completed. Count: " + lstAllMenuResultModel.Count() + " Time: " + DateTime.Now);

                List <MerchantIdentification_StoreName> lstAllMerchantStoreInformationawait = await objEmployeeDetails.GetEmployeeByCriteria(lstAllMerchantStoreInformation);

                LogHelper.Log("Get Employee list method completed. Time: " + DateTime.Now);

                //tustin
                //irvine
                //euclid
                //huntington beach
                //cypress,fountain valley,alhambra,artesia,chino hills,westminster,tustin,irvine,euclid,huntington beach,costa mesa
                lstAllMerchantStoreInformation = lstAllMerchantStoreInformation.
                                                 Where(s => s.merchantStoreName.ToLower() == "tustin").ToList();

                string startdate = GeneralHelper.ResetTimeToStartOfDay(new DateTime(2018, 01, 25)).ToString("MM/dd/yyyy HH:mm:ss");
                string enddate   = GeneralHelper.ResetTimeToStartOfDay(new DateTime(2018, 01, 26)).ToString("MM/dd/yyyy HH:mm:ss");
                await objOrders.GetOrderHistoryByCriteriaTestNew(lstAllMerchantStoreInformation, startdate, enddate);

                //await GetOrderHistoryByCriteriaTest(lstAllMerchantStoreInformation, startdate, enddate);
                //await GetOrderHistoryByCriteria(lstAllMerchantStoreInformation, startdate, enddate);
                LogHelper.Log("GetOrderHistoryByCriteriaTestNew method completed for Start Date: " + startdate + " End Date: " + enddate + " Time: " + DateTime.Now);

                //await GetOrderDetailsByOrderID(lstAllMerchantStoreInformation);
                //await LogOff(lstAllMerchantStoreInformation);
                //await DownloadStoreRevenueReport(lstAllMerchantStoreInformation,startdate,enddate);
                //LogHelper.Log("DownloadStoreRevenueReport method completed for Start Date: " + startdate + " End Date: " + enddate + " Time: " + DateTime.Now);

                // Console.WriteLine("File saved successfully");
            }
            catch (Exception ex)
            {
                LogHelper.Log("Erro in Run Async method. Error: " + ex.Message);
            }
        }
Пример #8
0
 public void MutateTwitterLink(MerchantDetails merchantDetails)
 {
     if (merchantDetails.Values.TryGetValue("twitter", out var item))
     {
         merchantDetails.UpsertValue("twitter").Value = Regex.Replace(item.Value, @"((https?:\/\/)?(www.)?twitter.com\/?)|(@)", "").Trim('/');
     }
 }
Пример #9
0
        public static void TestSetMerchantDetails()
        {
            try
            {
                SetupAppsettingsConfiguration();

                // set merchant details
                var merchantDetails = new MerchantDetails()
                {
                    Id = testId,
                    Name = "Test",
                    CardNumber = "12345",
                    Cvv = "1"
                };
                ConnectionHelper.SaveMerchantDetails(merchantDetails);

                // get merchant details 
                var result = ConnectionHelper.GetMerchantById(testId);
                Assert.AreEqual(testId, result.Id);
                Assert.AreEqual("Test", result.Name);
                Assert.AreEqual("12345", result.CardNumber);
                Assert.AreEqual("1", result.Cvv);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                throw;
            }
            finally
            {
                ConnectionHelper.DeleteMerchantById(testId);
            }
        }
Пример #10
0
        public async Task <ActionResult> SaveBusnLocationGeneralInfo(MerchantDetails merch)//SaveDealersGeneralInfo
        {
            merch.UserID = GetUserId;
            var data = await MechSignUpService.SaveBusnLocationGeneralInfo(merch);

            return(Json(new { result = data, BusnLoc = data.returnValue.BusnLocation, EntityId = data.returnValue.EntityId }, JsonRequestBehavior.AllowGet));
        }
Пример #11
0
 public void MutateFacebookLink(MerchantDetails merchantDetails)
 {
     if (merchantDetails.Values.TryGetValue("facebook", out var item))
     {
         merchantDetails.UpsertValue("facebook").Value = Regex.Replace(item.Value, @"(https?:\/\/)?(www.)?facebook.com\/?", "").Trim('/');
     }
 }
Пример #12
0
        public bool ExtractDetailsFromTitle(string title, MerchantDetails merchantDetails)
        {
            // RegEx pattern to match strings inside quotes (including escaped quotes) taken from
            // https://stackoverflow.com/a/171499
            var regex = new Regex(@"([""'])(?:(?=(\\?))\2.)*?\1", RegexOptions.IgnoreCase);

            var matches = regex.Matches(title);

            if (matches.Count != 2)
            {
                // Ensure there are only two matches - otherwise the title is in an unknown format
                return(false);
            }

            // Ensure both matches were successful
            if (!matches[0].Success && !matches[1].Success)
            {
                return(false);
            }


            merchantDetails.UpsertValue("name").Value     = matches[0].Value.Trim('\'');
            merchantDetails.UpsertValue("category").Value = matches[1].Value.Trim('\'');

            Log.Debug("Extracted \"{name}\" and \"{category}\" from \"{title}\"", merchantDetails.Values["name"].Value, merchantDetails.Values["category"].Value, title);

            return(true);
        }
Пример #13
0
        private void MapYmlKeyToDetailsWithSchema(MerchantDetails merchantDetails, MappingSchemaItem baseSchemaItem, string schemaXPath, string value)
        {
            var key = schemaXPath;

            // If the key isn't in the schema, this isn't a valid field and can be ignored
            // The exception to this is the 'category' key, which isn't included in the schema document
            // TODO: Announce invalid fields
            if (baseSchemaItem.Mapping.TryGetValue(key, out var schemaItem))
            {
                switch (schemaItem)
                {
                case KeyValueSchemaItem kvItem: {
                    var merchantDetailsItem = merchantDetails.UpsertValue(key);

                    merchantDetailsItem.SchemaItem = schemaItem;
                    merchantDetailsItem.Value      = value;
                }
                break;
                }
            }

            if (key == "category")
            {
                var merchantDetailsItem = merchantDetails.UpsertValue(key);

                merchantDetailsItem.Value = value.Trim('\'').Trim('\"');
            }
        }
Пример #14
0
        public async Task ItShouldBeGivenAnHttpsUrlAndTestTheHttpsVersionAndDoNothing()
        {
            var httpsUrlVariant = "https://google.com";

            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "url", new MerchantDetailsItem()
                        {
                            Value = httpsUrlVariant
                        } }
                }
            };

            var networkService = new Mock <INetworkService>();

            networkService.Setup(x => x.TestLiveliness(It.Is <string>(y => y == httpsUrlVariant))).ReturnsAsync(true);

            var context = new Mock <IPipelineContext>();

            context.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);

            var task = new DataMutationTask(networkService.Object);

            var result = await task.Process(context.Object);

            Assert.Equal(httpsUrlVariant, merchantDetails.Values["url"].Value);
        }
Пример #15
0
        public async Task ItShouldFailIfAllRequiredFieldsAreMissing()
        {
            var taskIdentifier = 5;

            var merchantDetails = new MerchantDetails();

            var repositoryContext = new Mock <IRepositoryContext>();

            repositoryContext.Setup(x => x.EnumerateCategories()).Returns(Array.Empty <string>());

            var context = new Mock <IPipelineContext>();

            context.SetupGet(x => x.TaskIdentifier).Returns(taskIdentifier);
            context.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);
            context.SetupGet(x => x.Data).Returns(new Dictionary <string, object>());
            context.SetupGet(x => x.RepositoryContext).Returns(repositoryContext.Object);
            context.SetupGet(x => x.Schema).Returns(schema);

            var task = BuildTask();

            var result = await task.Process(context.Object);

            Assert.False(result.IsSuccess);
            Assert.NotNull(result.Details);
        }
Пример #16
0
 public PipelineContext(int taskIdentifier, MerchantDetails merchantDetails, IRepositoryContext repositoryContext, ISchemaItem schema)
 {
     this.TaskIdentifier    = taskIdentifier;
     this.MerchantDetails   = merchantDetails;
     this.RepositoryContext = repositoryContext;
     this.Schema            = schema;
     this.Data = new Dictionary <string, object>();
 }
Пример #17
0
        public async Task <Authorize3dResponse> Authorize3d(
            string currency,
            string amount,
            PaymentOption paymentOption,
            string relatedTransactionId,
            List <Item> items                   = null,
            string userTokenId                  = null,
            string clientUniqueId               = null,
            string clientRequestId              = null,
            int?isRebilling                     = null,
            AmountDetails amountDetails         = null,
            DeviceDetails deviceDetails         = null,
            CashierUserDetails userDetails      = null,
            UserAddress shippingAddress         = null,
            UserAddress billingAddress          = null,
            DynamicDescriptor dynamicDescriptor = null,
            MerchantDetails merchantDetails     = null,
            Addendums addendums                 = null,
            UrlDetails urlDetails               = null,
            string customSiteName               = null,
            string productId                    = null,
            string customData                   = null,
            string transactionType              = null,
            bool autoPayment3D                  = default,
            string userId                 = null,
            string rebillingType          = null,
            string authenticationTypeOnly = null,
            SubMerchant subMerchant       = null)
        {
            var request = new Authorize3dRequest(merchantInfo, sessionToken, currency, amount, paymentOption, relatedTransactionId)
            {
                Items                  = items,
                UserTokenId            = userTokenId,
                ClientRequestId        = clientRequestId,
                ClientUniqueId         = clientUniqueId,
                IsRebilling            = isRebilling,
                AmountDetails          = amountDetails,
                DeviceDetails          = deviceDetails,
                UserDetails            = userDetails,
                ShippingAddress        = shippingAddress,
                BillingAddress         = billingAddress,
                DynamicDescriptor      = dynamicDescriptor,
                MerchantDetails        = merchantDetails,
                Addendums              = addendums,
                UrlDetails             = urlDetails,
                CustomSiteName         = customSiteName,
                ProductId              = productId,
                CustomData             = customData,
                TransactionType        = transactionType,
                AutoPayment3D          = autoPayment3D,
                UserId                 = userId,
                RebillingType          = rebillingType,
                AuthenticationTypeOnly = authenticationTypeOnly,
                SubMerchant            = subMerchant
            };

            return(await safechargeRequestExecutor.Authorize3d(request));
        }
Пример #18
0
        public async Task ItShouldFailIfImageUrlEmptyAndTwitterHandleIsAvailableAndTwitterProfileUrlEmpty()
        {
            var taskIdentifier = 5;

            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "img", new MerchantDetailsItem()
                        {
                            Value = ""
                        } },
                    { "name", new MerchantDetailsItem()
                        {
                            Value = "test"
                        } },
                    { "category", new MerchantDetailsItem()
                        {
                            Value = "test"
                        } },
                    { "url", new MerchantDetailsItem()
                        {
                            Value = "http://test"
                        } },
                    { "bch", new MerchantDetailsItem()
                        {
                            Value = "Yes"
                        } },
                    { "twitter", new MerchantDetailsItem()
                        {
                            Value = "test"
                        } },
                }
            };

            var repositoryContext = new Mock <IRepositoryContext>();

            repositoryContext.Setup(x => x.EnumerateCategories()).Returns(new string[] { "test" });

            var context = new Mock <IPipelineContext>();

            context.SetupGet(x => x.TaskIdentifier).Returns(taskIdentifier);
            context.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);
            context.SetupGet(x => x.Data).Returns(new Dictionary <string, object>());
            context.SetupGet(x => x.RepositoryContext).Returns(repositoryContext.Object);
            context.SetupGet(x => x.Schema).Returns(schema);

            var twitterService = new Mock <ITwitterService>();

            twitterService.Setup(x => x.GetProfileImageUrl(It.Is <string>(y => y == merchantDetails.Values["twitter"].Value))).ReturnsAsync("");

            var task = BuildTask(twitterService: twitterService.Object);

            var result = await task.Process(context.Object);

            Assert.Equal("", merchantDetails.Values["img"].Value);
            Assert.False(result.IsSuccess);
        }
Пример #19
0
        public void ItShouldUpsertValue()
        {
            var merchantDetails = new MerchantDetails();

            var result = merchantDetails.UpsertValue("test");

            Assert.Single(merchantDetails.Values);
            Assert.NotNull(result);
        }
        public IActionResult OnGet()
        {
            var merchantDetails = new MerchantDetails
            {
                MerchantName    = "Atlas pvt",
                MerchantAddress = "*****@*****.**"
            };

            ViewData["MerchantsName"]  = new SelectList(_context.MerchantDetails, "MerchantId", "MerchantName");
            ViewData["MerchantsEmail"] = new SelectList(_context.MerchantDetails, "MerchantId", "MerchantEmail");
            return(Page());
        }
        public void ItShouldExtractMerchantDetailsFromIssueTitleSuccessfully()
        {
            var title = $"Add '{sampleMerchantName}' to the '{sampleCategory}' category";

            var detailsLoader   = new GithubIssueMerchantDetailsLoader(Mock.Of <IGitHubService>());
            var merchantDetails = new MerchantDetails();

            var result = detailsLoader.ExtractDetailsFromTitle(title, merchantDetails);

            Assert.True(result);
            Assert.Equal(sampleMerchantName, merchantDetails.Values["name"].Value);
            Assert.Equal(sampleCategory, merchantDetails.Values["category"].Value);
        }
Пример #22
0
        public async Task MutateToSecureUrl(MerchantDetails merchantDetails)
        {
            var url = merchantDetails.Values["url"].Value;

            if (url.StartsWith("http://"))
            {
                var secureUrl = url.Replace("http://", "https://");

                if (await networkService.TestLiveliness(secureUrl))
                {
                    merchantDetails.UpsertValue("url").Value = secureUrl;
                }
            }
        }
Пример #23
0
        public async Task ItShouldSucceedIfAllRequiredFieldsArePresent()
        {
            var taskIdentifier = 5;

            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "name", new MerchantDetailsItem()
                        {
                            Value = "test"
                        } },
                    { "category", new MerchantDetailsItem()
                        {
                            Value = "category"
                        } },
                    { "img", new MerchantDetailsItem()
                        {
                            Value = "https://image.url"
                        } },
                    { "url", new MerchantDetailsItem()
                        {
                            Value = "https://merchant.url"
                        } },
                    { "bch", new MerchantDetailsItem()
                        {
                            Value = "yes"
                        } },
                }
            };

            var repositoryContext = new Mock <IRepositoryContext>();

            repositoryContext.Setup(x => x.EnumerateCategories()).Returns(new string[] { merchantDetails.Values["category"].Value });

            var context = new Mock <IPipelineContext>();

            context.SetupGet(x => x.TaskIdentifier).Returns(taskIdentifier);
            context.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);
            context.SetupGet(x => x.Data).Returns(new Dictionary <string, object>());
            context.SetupGet(x => x.RepositoryContext).Returns(repositoryContext.Object);
            context.SetupGet(x => x.Schema).Returns(schema);

            var task = BuildTask();

            var result = await task.Process(context.Object);

            Assert.True(result.IsSuccess);
            Assert.Null(result.Details);
        }
Пример #24
0
 public MechSignUpResponse()
 {
     merchGeneralInfo      = new MA_GeneralInfo();
     merchantDetail        = new MerchantDetails();
     merchChangeOwnerships = new List <MerchChangeOwnership>();
     merchProductPrizes    = new List <MerchProductPrize>();
     busnLocTerminal       = new BusnLocTerminal();
     busnLocTerminals      = new List <BusnLocTerminal>();
     eService               = new eService();
     eServices              = new List <eService>();
     merchantDetails        = new List <MerchantDetails>();
     merchPostedTxnSearches = new List <MerchPostedTxnSearch>();
     merchAgreements        = new List <MA_GeneralInfo>();
     merchChangeOwnership   = new MerchChangeOwnership();
 }
Пример #25
0
        /// <summary>
        /// This endpoint will set the merchants details.
        /// </summary>
        /// <param name="payload">The payload.</param>
        /// <returns>
        /// The <see cref="Task{IActionResult}" />.
        /// </returns>
        public static IActionResult SetMerchantDetails(SetMerchantDetailsPayload payload)
        {
            try
            {
                // save in database
                MerchantDetails merchantDetails = new MerchantDetails().Map(payload);
                ConnectionHelper.SaveMerchantDetails(merchantDetails);

                // return response
                return(new OkObjectResult(new SetMerchantDetailsResponse().Map(merchantDetails)));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }
Пример #26
0
        public async Task ItShouldSucceedIfMerchantDetailsNotShouldStopExecuting()
        {
            var merchantDetails = new MerchantDetails()
            {
                ShouldStopExecuting = false
            };

            var pipelineContext = new Mock <IPipelineContext>();

            pipelineContext.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);

            var task = new TriggerCheckingTask();

            var result = await task.Process(pipelineContext.Object);

            Assert.False(result.IsSoftExit);
            Assert.True(result.IsSuccess);
        }
        public async Task ItShouldAllowExecutingIfNoComments()
        {
            var schema = new MappingSchemaItem()
            {
                Mapping =
                {
                    { "websites", new SequenceSchemaItem()
                                            {
                                                Items =
                                                {
                                                    new MappingSchemaItem()
                                                    {
                                                        Name    = "Website",
                                                        Mapping =
                                                        {
                                                            { "name", new KeyValueSchemaItem()
                                            {
                                                Type = "str", Required = true, Unique = true
                                            } },
                                                            { "url", new KeyValueSchemaItem()
                                            {
                                                Type = "str", Required = true, Unique = true
                                            } }
                                                        }
                                                    }
                                                }
                                            } }
                }
            };

            var issueComments = new List <IssueComment>();

            var merchantDetails = new MerchantDetails();

            var githubService = new Mock <IGitHubService>();

            githubService.Setup(x => x.GetIssueComments(It.IsAny <RepositoryTarget>(), It.IsAny <int>())).ReturnsAsync(issueComments);

            var detailsLoader = new GithubIssueMerchantDetailsLoader(githubService.Object);

            await detailsLoader.ApplyIssueCommentCommandsToMerchantDetails(issueComments, schema, merchantDetails);

            Assert.False(merchantDetails.ShouldStopExecuting);
        }
Пример #28
0
        public void ExtractFacebookHandleFromUrl(string facebookUrl)
        {
            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "facebook", new MerchantDetailsItem()
                        {
                            Value = facebookUrl
                        } }
                }
            };

            var task = new DataMutationTask(Mock.Of <INetworkService>());

            task.MutateFacebookLink(merchantDetails);

            Assert.Equal("testing", merchantDetails.Values["facebook"].Value);
        }
Пример #29
0
        public void ExtractTwitterHandleFromUrl(string twitterUrl)
        {
            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "twitter", new MerchantDetailsItem()
                        {
                            Value = twitterUrl
                        } }
                }
            };

            var task = new DataMutationTask(Mock.Of <INetworkService>());

            task.MutateTwitterLink(merchantDetails);

            Assert.Equal("testing", merchantDetails.Values["twitter"].Value);
        }
Пример #30
0
        public async Task ItShouldUseTwitterProfileImageIfImageUrlEmptyAndTwitterHandleIsAvailable()
        {
            var taskIdentifier         = 5;
            var twitterProfileImageUrl = "https://twitter.com/img";

            var merchantDetails = new MerchantDetails()
            {
                Values =
                {
                    { "twitter", new MerchantDetailsItem()
                        {
                            Value = "test"
                        } },
                    { "img", new MerchantDetailsItem()
                        {
                            Value = ""
                        } }
                }
            };

            var repositoryContext = new Mock <IRepositoryContext>();

            repositoryContext.Setup(x => x.EnumerateCategories()).Returns(Array.Empty <string>());

            var context = new Mock <IPipelineContext>();

            context.SetupGet(x => x.TaskIdentifier).Returns(taskIdentifier);
            context.SetupGet(x => x.MerchantDetails).Returns(merchantDetails);
            context.SetupGet(x => x.Data).Returns(new Dictionary <string, object>());
            context.SetupGet(x => x.RepositoryContext).Returns(repositoryContext.Object);
            context.SetupGet(x => x.Schema).Returns(schema);

            var twitterService = new Mock <ITwitterService>();

            twitterService.Setup(x => x.GetProfileImageUrl(It.Is <string>(y => y == merchantDetails.Values["twitter"].Value))).ReturnsAsync(twitterProfileImageUrl);

            var task = BuildTask(twitterService: twitterService.Object);

            var result = await task.Process(context.Object);

            Assert.Equal(twitterProfileImageUrl, merchantDetails.Values["img"].Value);
        }