public CouchClient(string connectionString = null) { this.originalConnectionString = connectionString; if (string.IsNullOrEmpty(connectionString)) { connectionString = "127.0.0.1:5984"; } connectionString = connectionString.EndsWith("/", StringComparison.InvariantCultureIgnoreCase) ? connectionString : connectionString + "/"; connectionString = connectionString.StartsWith("http", StringComparison.InvariantCultureIgnoreCase) ? connectionString : "http://" + connectionString; Uri uri = new Uri(connectionString); if (!string.IsNullOrEmpty(uri.UserInfo)) { connectionString = connectionString.Replace(uri.UserInfo + "@", string.Empty); } this.connectionString = connectionString; var client = new RestClient(connectionString); if (!string.IsNullOrEmpty(uri.UserInfo)) { client.Authenticator = new HttpBasicAuthenticator( uri.UserInfo.Split(':')[0], uri.UserInfo.Split(':')[1] ); } http = new RestClientWrapper(client); http.client.AddDefaultHeader("Content-Type", "application/json"); baseUrl = http.client.BaseUrl; }
public CouchClient(string connectionString) { Ensure.That(connectionString).IsNotNullOrWhiteSpace(); connectionString = connectionString.EndsWith("/", StringComparison.InvariantCultureIgnoreCase) ? connectionString : connectionString + "/"; connectionString = connectionString.StartsWith("http", StringComparison.InvariantCultureIgnoreCase) ? connectionString : "http://" + connectionString; Uri uri = new Uri(connectionString); if (!string.IsNullOrEmpty(uri.UserInfo)) { this.connectionString = connectionString.Replace(uri.UserInfo + "@", string.Empty); } else { this.connectionString = connectionString; } var client = new RestClient(this.connectionString); if (!string.IsNullOrEmpty(uri.UserInfo)) { client.Authenticator = new HttpBasicAuthenticator( uri.UserInfo.Split(':')[0], uri.UserInfo.Split(':')[1] ); } http = new RestClientWrapper(client); http.client.AddDefaultHeader("Content-Type", "application/json"); }
public void Api_RestClientWrapper_IsGoodResponse_ReturnsCorrectly(RestResponse response, bool expected) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.IsGoodResponse(response); Assert.AreEqual(expected, result); }
public GitHubBranchInfoFetcher(string repoOwner, string repoName, string repoBranch, RestClientWrapper restClientWrapper) { this._repoOwner = repoOwner; this._repoName = repoName; this._repoBranch = repoBranch; _restClientWrapper = restClientWrapper; }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectFormat(RestClientParameters restClientParameters, string expectedFormat) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); Assert.AreEqual(expectedFormat.ToLower(), result.RequestFormat.ToString().ToLower()); }
public void CreateClientWrapper_ReturnsExpectedValue(ApiContext context, RestClientWrapper expected) { var builder = new ApiRestClientBuilder(); var actual = builder.CreateClientWrapper(context); AssertExtension.AreObjectsValuesEqual(expected, actual); }
public GitHubFilesDownloader(string repoOwner, string repoName, string repoBranch) { this._restClientWrapper = new RestClientWrapper(); this._gitHubInfoFetcher = new GitHubBranchInfoFetcher(repoOwner, repoName, repoBranch, this._restClientWrapper); this._repoOwner = repoOwner; this._repoName = repoName; this._repoBranch = repoBranch; }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectUrl() { var restClientParameters = new RestClientParameters { RequestUrl = "v1/attributes/standard", }; var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); Assert.AreEqual(restClientParameters.RequestUrl, result.Resource); }
public RestApi() { client = new RestClientWrapper(BaseURL); SetLocalProxy(); if (firstUse) { firstUse = false; SetAllureProperties(); } }
public RestApi(string BaseURL) { this.BaseURL = BaseURL; client = new RestClientWrapper(BaseURL); SetLocalProxy(); if (firstUse) { firstUse = false; SetAllureProperties(); } }
/// <summary> /// Gets some information using the Retry resilience pattern. /// /// Upon encountering an Internal Server Error (500), the repository method will perform /// a maximum of 3 retries and will wait respectively 1, 2 and 3 seconds between the attempts. /// </summary> public string GetDataUsingRetryPatternWithSpecifiedTimeouts() { var request = new RestClientWrapper("http://localhost:60540") .SetResource(_endpointWithTransientFaultsRoute) .SetMethod(Method.GET); string response = ExecuteWithRetryAndTimeoutPolicy <string>(() => request.Execute()); return(response); }
public void AvoidSettingUserAgentOnChangeBaseUrlTo() { var restClientWrapper = new RestClientWrapper(); var client = new Client(restClientWrapper); client.SetUserAgent("MySuperAPP"); var userAgent = restClientWrapper.RestClient.UserAgent; client.ChangeBaseUrlTo("https://api.sandbox.dnsimple.com"); Assert.AreEqual(userAgent, restClientWrapper.RestClient.UserAgent); }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectBody( RestClientParameters restClientParameters, string expectedBodyType) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); var body = result.Parameters.Where(x => x.Type == ParameterType.RequestBody); var expectedBodyCount = restClientParameters.RequestBody != null ? 1 : 0; Assert.AreEqual(expectedBodyCount, body.Count()); Assert.AreEqual(expectedBodyType, body.FirstOrDefault()?.Name); }
public void ExecuteRequest_ErrorException_ThrowsApplicationException() { var mockRestClient = new Mock <IRestClient>(); var mockResponse = new Mock <IRestResponse <object> >(); mockRestClient.Setup(c => c.Execute <object>(It.IsAny <IRestRequest>())).Returns(mockResponse.Object); mockResponse.Setup(r => r.ErrorException).Returns(new Exception("test")); var wrapper = new RestClientWrapper(mockRestClient.Object); const string url = "https://fake.url/"; Assert.Throws <ApplicationException>(() => wrapper.ExecuteRequest <object>(new RestRequest(), url)); }
public void Api_RestClientWrapper_Execute_TriesToExecute(RestResponse response, bool expectedFromOneAttempt) { var clientMock = new Mock <RestClient>(); clientMock.Setup(x => x.Execute(It.IsAny <IRestRequest>())).Returns(response); var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); restClientWrapper.Execute(clientMock.Object, It.IsAny <IRestRequest>()); var times = expectedFromOneAttempt ? Times.Once() : Times.AtLeastOnce(); clientMock.Verify(mock => mock.Execute(It.IsAny <IRestRequest>()), times); }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectQueryParams(RestClientParameters restClientParameters) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); var queryParams = result.Parameters.Where(x => x.Type == ParameterType.QueryString); var expectedQueryParamsCount = restClientParameters.RequestQueryParameters?.Count ?? 0; Assert.AreEqual(expectedQueryParamsCount, queryParams.Count()); foreach (var param in queryParams) { Assert.IsTrue(restClientParameters.RequestQueryParameters.Keys.Contains(param.Name)); Assert.AreEqual(restClientParameters.RequestQueryParameters[param.Name], param.Value); } }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectUrlSegments(RestClientParameters restClientParameters) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); var urlSegments = result.Parameters.Where(x => x.Type == ParameterType.UrlSegment); var expectedParamsCount = restClientParameters.RequestUrlSegments?.Count ?? 0; Assert.AreEqual(expectedParamsCount, urlSegments.Count()); foreach (var urlSegment in urlSegments) { Assert.IsTrue(restClientParameters.RequestUrlSegments.Keys.Contains(urlSegment.Name)); Assert.AreEqual(restClientParameters.RequestUrlSegments[urlSegment.Name], urlSegment.Value); } }
public void Api_RestClientWrapper_GetRestRequest_ReturnsCorrectRequestWithCorrectHeaders(RestClientParameters restClientParameters) { var restClientWrapper = new RestClientWrapper(new RestClientWrapperCredentials()); var result = restClientWrapper.GetRestRequest(restClientParameters); var headers = result.Parameters.Where(x => x.Type == ParameterType.HttpHeader); var expectedHeadersCount = restClientParameters.RequestHeaders?.Count ?? 0; Assert.AreEqual(expectedHeadersCount, headers.Count()); foreach (var header in headers) { Assert.IsTrue(restClientParameters.RequestHeaders.Keys.Contains(header.Name)); Assert.AreEqual(restClientParameters.RequestHeaders[header.Name], header.Value); } }
public void ExecuteRequest_SetsClientsBaseUrl() { var mockRestClient = new Mock <IRestClient>(); var mockResponse = new Mock <IRestResponse <object> >(); mockRestClient.Setup(c => c.Execute <object>(It.IsAny <IRestRequest>())).Returns(mockResponse.Object); mockRestClient.SetupProperty(c => c.BaseUrl); var wrapper = new RestClientWrapper(mockRestClient.Object); const string url = "https://fake.url/"; wrapper.ExecuteRequest <object>(new RestRequest(), url); Assert.Equal(url, mockRestClient.Object.BaseUrl.ToString()); }
public void Api_RestClientWrapper_GetRestClient_ReturnsCorrectRestClient( RestClientWrapperCredentials credentials, RestClientParameters restClientParameters, IAuthenticator expectedAuthenticator) { var wrapper = new RestClientWrapper(credentials); var result = wrapper.GetRestClient(restClientParameters); Assert.AreEqual(restClientParameters.BaseUrl, result.BaseUrl.OriginalString); if (expectedAuthenticator == null) { Assert.AreEqual(expectedAuthenticator, result.Authenticator); } else { Assert.AreEqual(expectedAuthenticator.GetType(), result.Authenticator.GetType()); } }
/// <summary> /// Gets some information using both the Circuit Breaker and Retry resilience pattern. /// </summary> public string GetDataUsingRetryAndCircuitBreakerPattern() { var request = new RestClientWrapper("http://localhost:60540") .SetResource(_endpointWithTransientFaultsRoute) .SetMethod(Method.GET); try { var response = ExecuteWithResiliencePolicy <string>(() => request.Execute()); return(response); } catch (BrokenCircuitException ex) { _logger.Information("OUT OF ORDER: Circuit breaker is currently tripped. Sorry."); return("Service unavailable"); } }
private Ents24Client GetApiClientFor(Source site) { var restClient = new RestClientWrapper(new RestClient()); return(new Ents24Client(site, restClient)); }
public ScreepsApiClient(string baseUrl, string token) { this.client = new RestClientWrapper(baseUrl, token); this.User = new UserEndpoint(this.client); }
public GitHubWrapper(string userName, string password, string branchName, GitHubRequestBuilder gitHubRequestBuilder) { BranchName = branchName; HubRequestBuilder = gitHubRequestBuilder; _restClient = new RestClientWrapper(userName, password); }