Esempio n. 1
0
        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();
     }
 }
Esempio n. 10
0
 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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 14
0
        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);
            }
        }
Esempio n. 19
0
        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");
            }
        }
Esempio n. 22
0
        private Ents24Client GetApiClientFor(Source site)
        {
            var restClient = new RestClientWrapper(new RestClient());

            return(new Ents24Client(site, restClient));
        }
Esempio n. 23
0
        public ScreepsApiClient(string baseUrl, string token)
        {
            this.client = new RestClientWrapper(baseUrl, token);

            this.User = new UserEndpoint(this.client);
        }
Esempio n. 24
0
 public GitHubWrapper(string userName, string password, string branchName, GitHubRequestBuilder gitHubRequestBuilder)
 {
     BranchName = branchName;
     HubRequestBuilder = gitHubRequestBuilder;
     _restClient = new RestClientWrapper(userName, password);
 }