public void CanProcessRequestOk() { var refundResponse = "{\r\n \"refundId\": \"S01-5105180-3221187-R022311\",\r\n \"chargeId\": \"S01-5105180-3221187-C056351\",\r\n \"refundAmount\": {\r\n \"amount\": \"14.00\",\r\n \"currencyCode\": \"USD\"\r\n },\r\n \"softDescriptor\": \"Descriptor\",\r\n \"creationTimestamp\": \"20190714T155300Z\",\r\n \"statusDetails\": {\r\n \"state\": \"RefundInitiated\",\r\n \"reasonCode\": null,\r\n \"reasonDescription\": null,\r\n \"lastUpdatedTimestamp\": \"20190714T155300Z\"\r\n },\r\n \"releaseEnvironment\": \"Sandbox\"\r\n}"; var mockTestClient = new Mock <TestClient>(payConfig) { CallBase = true }; mockTestClient.Protected().As <ITestClientMapping>() .Setup(c => c.SendRequest(It.IsAny <ApiRequest>(), It.IsAny <Dictionary <string, string> >())) .Returns((ApiRequest request, Dictionary <string, string> postSignedHeaders) => AssertPreSendRequestFlow(request, postSignedHeaders, HttpStatusCode.OK, refundResponse)); var testRequest = new Amazon.Pay.API.InStore.Refund.CreateRefundRequest("123456789", 10, Currency.USD, "referenceID"); var apiUrlBuilder = new ApiUrlBuilder(payConfig); var apiPath = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.InStore.Refund); var apiRequest = new ApiRequest(apiPath, HttpMethod.POST, testRequest, null); var result = mockTestClient.Object.Invoke <RefundResponse>(apiRequest, new Dictionary <string, string>()); Assert.NotNull(result); Assert.AreEqual(refundResponse, result.RawResponse); Assert.AreEqual(testRequest.ToJson(), result.RawRequest); Assert.AreEqual("S01-5105180-3221187-R022311", result.RefundId); Assert.AreEqual(true, result.Success); Assert.NotNull(result.RequestId); Assert.AreEqual(0, result.Retries); Assert.AreEqual(HttpMethod.POST, result.Method); Assert.AreEqual(apiPath, result.Url); Assert.True(result.Duration > 0); }
public void AddQuery_ValidInput_AddsQueryToQuerystring() { var urlBuilder = new ApiUrlBuilder(); urlBuilder.AppendQuery("key", "1234"); Assert.Equal("?key=1234", urlBuilder.Query); }
public void AddQuery_MultipleValidInputs_AddsQueriesToQuerystring() { var urlBuilder = new ApiUrlBuilder() .AppendQuery("key", "banana") .AppendQuery("cat", "black"); Assert.Equal("?key=banana&cat=black", urlBuilder.Query); }
public void SetPath_SingleStringInput_SetsPathCorrectly(string path, string pathResult) { var url = new ApiUrlBuilder(); url.AppendPath(path); Assert.Equal(pathResult, url.Path); }
public void SetPath_ParamsStrings_SetsPathCorrectly(string resultPath, params string[] path) { var url = new ApiUrlBuilder(); url.AppendPath(path); Assert.Equal(resultPath, url.Path); }
BaseResponse <Post> IPosts.GetAllPosts(PostFilter filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Posts) .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Post> >().ValidateApiResponse(); return(response); }
public Cryptsy() { ApiUrl = new ApiUrlBuilder(); HttpClient = new System.Net.Http.HttpClient(); MarketLookup = new Dictionary <CurrencyPair, int> { { CurrencyPair.DrkBtc, 155 }, { CurrencyPair.UtcBtc, 163 }, }; }
BaseResponse <Badge> IBadges.GetRecentlyAwardedBadges(BadgeFilters filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Badges, "recipients") .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Badge> >().ValidateApiResponse(); return(response); }
BaseResponse <Badge> IBadges.GetNonTaggedBadges(List <string> ids, BadgeFilters filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Badges, "name") .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Badge> >().ValidateApiResponse(); return(response); }
BaseResponse <Badge> IBadges.GetAllTaggedBadges(BadgeFilters filters, string inName) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Badges, "tags") .WithFilter(filters, inName) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Badge> >().ValidateApiResponse(); return(response); }
public Cryptsy() { ApiUrl = new ApiUrlBuilder(); HttpClient = new System.Net.Http.HttpClient(); MarketLookup = new Dictionary<CurrencyPair, int> { { CurrencyPair.DrkBtc, 155 }, { CurrencyPair.UtcBtc, 163 }, }; }
BaseResponse <Post> IPosts.GetSuggestedEdits(List <string> ids, SuggestedEditFilter filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Posts) .WithFilter(filters) .WithIds(ids, "suggested-edits") .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Post> >().ValidateApiResponse(); return(response); }
BaseResponse <Question> IAnswers.GetQuestionByAnswerIds(List <string> ids, AnswerFilters filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Answers) .WithFilter(filters) .WithIds(ids) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Question> >().ValidateApiResponse(); return(response); }
BaseResponse <Answer> IAnswers.GetAllAnswers(AnswerFilters filters) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Answers) .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Answer> >().ValidateApiResponse(); return(response); }
BaseResponse <Question> IQuestions.GetFeaturedQuestions(QuestionFilters filters) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Questions, "featured") .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Question> >().ValidateApiResponse(); return(response); }
BaseResponse <Comment> IQuestions.GetCommentsByQuestionIds(List <string> ids, QuestionFilters filters) { var url = ApiUrlBuilder.Initialize(_apiKey) .ForClient(ClientType.Questions) .WithFilter(filters) .WithIds(ids) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Comment> >().ValidateApiResponse(); return(response); }
BaseResponse <TagSynonym> ITags.GetAllTagSynonyms(TagFilter filter) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Tags, "synonyms") .WithFilter(filter) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <TagSynonym> >().ValidateApiResponse(); return(response); }
BaseResponse <Question> ITags.GetFrequentlyAskedQuestions(List <string> tags) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Tags) .WithIds(tags, "faq") .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Question> >().ValidateApiResponse(); return(response); }
BaseResponse <Tags> ITags.GetRelatedTags(List <string> tags) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Tags) .WithIds(tags, "related") .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Tags> >().ValidateApiResponse(); return(response); }
BaseResponse <TagScore> ITags.GetTopAskers(string tag, string period) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Tags) .WithTagAndPeriod(tag, $"top-askers/{period}") .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <TagScore> >().ValidateApiResponse(); return(response); }
BaseResponse <Badge> IBadges.GetAllBadges(BadgeFilters filters, string inName) { MakeSure.ArgumentNotNullOrEmptyString(inName, nameof(inName)); var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Badges) .WithFilter(filters, inName) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Badge> >().ValidateApiResponse(); return(response); }
BaseResponse <SuggestedEdits> ISuggestedEdits.GetAllSuggestedEdits(SuggestedEditFilter filters) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Suggested_Edits) .WithFilter(filters) .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <SuggestedEdits> >().ValidateApiResponse(); return(response); }
BaseResponse <Tags> ITags.GetTagsByNames(List <string> tags, TagFilter filter) { var url = ApiUrlBuilder .Initialize(_apiKey) .ForClient(ClientType.Tags) .WithFilter(filter) .WithIds(tags, "info") .GetApiUrl(); var response = _httpClient.GetAsync(url).Result.ReadAsJsonAsync <Data <Tags> >().ValidateApiResponse(); return(response); }
public void GetFullPathForInStoreApiService() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v2/in-store/merchantScan/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.InStore, Constants.Resources.InStore.MerchantScan); // assert Assert.AreEqual(expectedURL, actualURL); }
public void GetApiEndPointBaseUrlForJapanSandbox() { // arrange payConfig.Region = Region.Japan; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.jp/sandbox/"); // act Uri actualURL = apiUrlBuilder.GetApiEndPointBaseUrl(); // assert Assert.AreEqual(expectedURL, actualURL); }
public void GetApiEndPointBaseUrlForUnitedStatesLive() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Live; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/live/"); // act Uri actualURL = apiUrlBuilder.GetApiEndPointBaseUrl(); // assert Assert.AreEqual(expectedURL, actualURL); }
// Generic method used to verify Unified Endpoint Full Path public void VerifyUnifiedEndpointFullPath(Region region, string publicKeyId, string url, string apiService, string resource) { // Configuration payConfig.Region = region; payConfig.PublicKeyId = publicKeyId; apiUrlBuilder = new ApiUrlBuilder(payConfig); // Building URL Uri expectedURL = new Uri(url); Uri actualURL = apiUrlBuilder.BuildFullApiPath(apiService, resource); // Assertion Assert.AreEqual(expectedURL, actualURL); }
// Generic method used to verify Unified Endpoint Base URL public void VerifyUnifiedEndpointBaseURL(Region region, string publicKeyId, string url) { // Configuration payConfig.Region = region; payConfig.PublicKeyId = publicKeyId; apiUrlBuilder = new ApiUrlBuilder(payConfig); // Building URL Uri expectedURL = new Uri(url); Uri actualURL = apiUrlBuilder.GetApiEndPointBaseUrl(); // Assertion Assert.AreEqual(expectedURL, actualURL); }
public void GetFullPathForTokenExchangeApi() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v2/authorizationTokens/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.TokenExchange); // assert Assert.AreEqual(expectedURL, actualURL); }
public override void Load() { var mongoDb = new MongoClient(Properties.Settings.Default.MongoConnection); var mongoConnection = mongoDb.GetDatabase(Properties.Settings.Default.DatabaseName); var masterConfiguration = ConfigurationManager.GetCurrentConfiguration(Properties.Settings.Default.MasterConfigLocation); var baseHostString = ApiUrlBuilder.BuildApiStaticDataUrl(Regions.euw, masterConfiguration); Bind <IRepositoryFactory>().To <RepositoryFactory>().WithConstructorArgument(mongoConnection); Bind <IProcessingStrategyFactory>().To <ProcessingStrategyFactory>(); Bind <IQueryExecutor>().To <QueryExecutor>().WithConstructorArgument(new HttpClient()); Bind <IQueryBuilder>().To <QueryBuilder>() .WithConstructorArgument("apiKey", Properties.Settings.Default.ApiKey) .WithConstructorArgument("host", baseHostString); }
public void GetFullPathForDeliveryTrackerApiService() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v1/deliveryTrackers/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.DeliveryTracker); // assert Assert.AreEqual(expectedURL, actualURL); }
public CryptoRush() { ApiUrl = new ApiUrlBuilder(); HtmlWeb = new HtmlWeb(); }
public Mintpal() { ApiUrl = new ApiUrlBuilder(); HtmlWeb = new HtmlWeb(); }
public CryptoTrade() { ApiUrl = new ApiUrlBuilder(); HttpClient = new System.Net.Http.HttpClient(); }
public Poloniex() { ApiUrl = new ApiUrlBuilder(); HttpClient = new System.Net.Http.HttpClient(); }