public Form1() { InitializeComponent(); IRequestHandler httpWebRequestHandler = new HttpWebRequestHandler(); IRequestHandler webClientRequestHandler = new WebClientRequestHandler(); IRequestHandler httpClientRequestHandler = new HttpClientRequestHandler(); IRequestHandler restSharpRequestHandler = new RestSharpRequestHandler(); IRequestHandler serviceStackRequestHandler = new ServiceStackRequestHandler(); IRequestHandler flurlRequestHandler = new FlurlRequestHandler(); IRequestHandler dalSoftRequestHandler = new DalSoftRequestHandler(); var response = GetReleases(httpWebRequestHandler); var githubReleases = JsonConvert.DeserializeObject <List <GitHubRelease> >(response); foreach (var release in githubReleases) { CustomerEmaillbl.Text = customerCombobox.Text; customerCombobox.Items.Add(release); } }
static void Main(string[] args) { Console.WriteLine("Fetching the list of RestSharp releases and their publish dates."); Console.WriteLine(); //These are the five ways to consume RESTful APIs described in the blog post IRequestHandler httpWebRequestHandler = new HttpWebRequestHandler(); IRequestHandler webClientRequestHandler = new WebClientRequestHandler(); IRequestHandler httpClientRequestHandler = new HttpClientRequestHandler(); IRequestHandler restSharpRequestHandler = new RestSharpRequestHandler(); IRequestHandler serviceStackRequestHandler = new ServiceStackRequestHandler(); //Currently HttpWebRequest is used to get the RestSharp releases //Replace the httpWebRequestHandler variable with one of the above to test out different libraries //Results should be the same var releases = GetReleases(serviceStackRequestHandler); //List out the retreived releases foreach (JObject release in releases.Children()) { Console.WriteLine("Release: {0}", release.GetValue("name")); Console.WriteLine("Published: {0}", DateTime.Parse(release.GetValue("published_at").ToString())); Console.WriteLine(); } Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("Fetching the list of RestSharp releases and their publish dates."); Console.WriteLine(); //These are the six ways to consume RESTful APIs described in the blog post IRequestHandler httpWebRequestHandler = new HttpWebRequestHandler(); IRequestHandler webClientRequestHandler = new WebClientRequestHandler(); IRequestHandler httpClientRequestHandler = new HttpClientRequestHandler(); IRequestHandler restSharpRequestHandler = new RestSharpRequestHandler(); IRequestHandler serviceStackRequestHandler = new ServiceStackRequestHandler(); IRequestHandler flurlRequestHandler = new FlurlRequestHandler(); //to support github's depreciation of older cryptographic standards ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //Currently HttpWebRequest is used to get the RestSharp releases //Replace the httpWebRequestHandler variable with one of the above to test out different libraries //Results should be the same var response = GetReleases(httpWebRequestHandler); var githubReleases = JsonConvert.DeserializeObject <List <GitHubRelease> >(response); foreach (var release in githubReleases) { Console.WriteLine("Release: {0}", release.Name); Console.WriteLine("Published: {0}", DateTime.Parse(release.PublishedAt)); Console.WriteLine(); } Console.ReadLine(); }
public void BuildRequestParamsHandlesComplexObject() { var complexObject = new TestParams { MyString = "inner-foo" }; var mockParser = new Mock <IResponseParser>(); mockParser.Setup(p => p.SerializeMessage(complexObject)) .Returns("{\"json\": \"result\"}") .Verifiable(); var subject = new RestSharpRequestHandler("xxx"); subject.ResponseParser = mockParser.Object; var testParams = new TestParams { MyInt = 90, MyComplexObject = complexObject }; var result = subject.BuildRequestParams(testParams); Assert.Equal(2, result.Keys.Count); Assert.Equal("{\"json\": \"result\"}", result["my_complex_object"]); Assert.Equal("90", result["my_int"]); mockParser.Verify(); }
static void Main(string[] args) { Console.WriteLine("Fetching the list of RestSharp releases and their publish dates."); Console.WriteLine(); //These are the five ways to consume RESTful APIs described in the blog post IRequestHandler httpWebRequestHandler = new HttpWebRequestHandler(); IRequestHandler webClientRequestHandler = new WebClientRequestHandler(); IRequestHandler httpClientRequestHandler = new HttpClientRequestHandler(); IRequestHandler restSharpRequestHandler = new RestSharpRequestHandler(); IRequestHandler serviceStackRequestHandler = new ServiceStackRequestHandler(); //to support github's depreciation of older cryptographic standards ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //Currently HttpWebRequest is used to get the RestSharp releases //Replace the httpWebRequestHandler variable with one of the above to test out different libraries //Results should be the same var releases = GetReleases(httpWebRequestHandler); //List out the retreived releases foreach (var jToken in releases.Children()) { var release = (JObject) jToken; Console.WriteLine("Release: {0}", release.GetValue("name")); Console.WriteLine("Published: {0}", DateTime.Parse(release.GetValue("published_at").ToString())); Console.WriteLine(); } Console.ReadLine(); }
public void ExecuteAndDeserializeRequestHandlesComplexRequest() { var token = "xxx"; var path = "/root"; var jsonPayload = "{\"json\": \"result\""; var dictionaryParams = new Dictionary <string, string> { { "foo", "bar" } }; var fileRequest = new FileUploadRequest { Title = "file", Filename = "file.txt", FileData = new byte[10] }; var restResponse = new RestResponse(); restResponse.Content = jsonPayload; var mockRestClient = new Mock <IRestClient>(); mockRestClient.Setup(r => r.Execute(It.IsAny <IRestRequest>())) .Callback <IRestRequest>(r => { Assert.Equal(1, r.Files.Count); Assert.Equal(fileRequest.Title, r.Files[0].Name); Assert.Equal(fileRequest.Filename, r.Files[0].FileName); Assert.Equal(fileRequest.FileData.Length, r.Files[0].ContentLength); Assert.Equal(Method.PUT, r.Method); Assert.Equal(path, r.Resource); Assert.Equal(2, r.Parameters.Count); Assert.Equal(token, r.Parameters.First(p => p.Name == "token").Value); Assert.Equal("bar", r.Parameters.First(p => p.Name == "foo").Value); }) .Returns(restResponse) .Verifiable(); var mockParser = new Mock <IResponseParser>(); mockParser.Setup(p => p.Deserialize <TestParams>(jsonPayload)) .Returns(new TestParams { MyInt = 90 }) .Verifiable(); var subject = new RestSharpRequestHandler(token); subject.RestClient = mockRestClient.Object; subject.ResponseParser = mockParser.Object; var result = subject.ExecuteAndDeserializeRequest <TestParams>(path, dictionaryParams, HttpMethod.PUT, fileRequest); Assert.Equal(90, result.MyInt); mockParser.Verify(); mockRestClient.Verify(); }
public void BuildApiPathHandlesEmptyExpressions() { var subject = new RestSharpRequestHandler("xxx"); var result = subject.BuildApiPath("/root"); Assert.Equal("/root", result); }
public void BuildApiPathHandlesUriDataExpressions() { var subject = new RestSharpRequestHandler("xxx"); var result = subject.BuildApiPath("/root", UriData => "https://url.com?x=y&#"); Assert.Equal("/root?UriData=https%3A%2F%2Furl.com%3Fx%3Dy%26%23", result); }
public void BuildApiPathHandlesBasicExpressions() { var subject = new RestSharpRequestHandler("xxx"); var result = subject.BuildApiPath("/root", SomeStringParam => "foo", test_param => true); Assert.Equal("/root?SomeStringParam=foo&test_param=true", result); }
protected void TestInitialize() { _fixture = new Fixture(); _restClient = new RestClient_Fake { BaseUrl = _fixture.Create <Uri>() }; _restRequest = new RestRequest_Fake(); _restClientWrapper = new RestSharpClientWrapper_Fake(); _sut = new RestSharpRequestHandler(_restClientWrapper); }
/// <summary> /// Builds a configured IRestApiClient, based on currently configured configurations /// </summary> /// <returns>Fully configured IRestApiClient</returns> public IRestApiClient Build() { if (!BaseUris.Any()) { throw new RestClientConfigurationException("Please configure atleast one base uri"); } var authorizationHeaderFactories = Authenticators.ToDictionary( kvp => kvp.Key, kvp => kvp.Value.CreateFactory(_logger)); var wrapper = new RestSharpClientWrapper(BaseUris, authorizationHeaderFactories, Timeouts, _logger); var requestHandler = new RestSharpRequestHandler(wrapper); return(new RestApiClient(requestHandler, _contextFunc)); }
public void ExecuteAndDeserializeRequestHandlesBasicRequest() { var token = "xxx"; var path = "/root"; var jsonPayload = "{\"json\": \"result\""; var restResponse = new RestResponse(); restResponse.Content = jsonPayload; var mockRestClient = new Mock <IRestClient>(); mockRestClient.Setup(r => r.Execute(It.IsAny <IRestRequest>())) .Callback <IRestRequest>(r => { Assert.Equal(0, r.Files.Count); Assert.Equal(Method.POST, r.Method); Assert.Equal(path, r.Resource); Assert.Equal(1, r.Parameters.Count); Assert.Equal(token, r.Parameters[0].Value); }) .Returns(restResponse) .Verifiable(); var mockParser = new Mock <IResponseParser>(); mockParser.Setup(p => p.Deserialize <TestParams>(jsonPayload)) .Returns(new TestParams { MyInt = 90 }) .Verifiable(); var subject = new RestSharpRequestHandler(token); subject.RestClient = mockRestClient.Object; subject.ResponseParser = mockParser.Object; var result = subject.ExecuteAndDeserializeRequest <TestParams>(path); Assert.Equal(90, result.MyInt); mockParser.Verify(); mockRestClient.Verify(); }
public void BuildRequestParamsHandlesBasicObject() { var subject = new RestSharpRequestHandler("xxx"); var testParams = new TestParams { MyString = "foo", MyBool = true, MyBytes = new byte[10], MyEnum = TestEnumParams.TestItem2, MyInt = 90 }; var result = subject.BuildRequestParams(testParams); Assert.Equal(4, result.Keys.Count); Assert.Equal("foo", result["my_string"]); Assert.Equal("true", result["my_bool"]); Assert.Equal("test_item2", result["my_enum"]); Assert.Equal("90", result["my_int"]); }
public void BuildRequestParamsHandlesComplexObject() { var complexObject = new TestParams { MyString = "inner-foo" }; var mockParser = new Mock<IResponseParser>(); mockParser.Setup(p => p.SerializeMessage(complexObject)) .Returns("{\"json\": \"result\"}") .Verifiable(); var subject = new RestSharpRequestHandler("xxx"); subject.ResponseParser = mockParser.Object; var testParams = new TestParams { MyInt = 90, MyComplexObject = complexObject }; var result = subject.BuildRequestParams(testParams); Assert.Equal(2, result.Keys.Count); Assert.Equal("{\"json\": \"result\"}", result["my_complex_object"]); Assert.Equal("90", result["my_int"]); mockParser.Verify(); }
public void ExecuteAndDeserializeRequestHandlesComplexRequest() { var token = "xxx"; var path = "/root"; var jsonPayload = "{\"json\": \"result\""; var dictionaryParams = new Dictionary<string, string> { { "foo", "bar" } }; var fileRequest = new FileUploadRequest { Title = "file", Filename = "file.txt", FileData = new byte[10] }; var restResponse = new RestResponse(); restResponse.Content = jsonPayload; var mockRestClient = new Mock<IRestClient>(); mockRestClient.Setup(r => r.Execute(It.IsAny<IRestRequest>())) .Callback<IRestRequest>(r => { Assert.Equal(1, r.Files.Count); Assert.Equal(fileRequest.Title, r.Files[0].Name); Assert.Equal(fileRequest.Filename, r.Files[0].FileName); Assert.Equal(fileRequest.FileData.Length, r.Files[0].ContentLength); Assert.Equal(Method.PUT, r.Method); Assert.Equal(path, r.Resource); Assert.Equal(2, r.Parameters.Count); Assert.Equal(token, r.Parameters.First(p => p.Name == "token").Value); Assert.Equal("bar", r.Parameters.First(p => p.Name == "foo").Value); }) .Returns(restResponse) .Verifiable(); var mockParser = new Mock<IResponseParser>(); mockParser.Setup(p => p.Deserialize<TestParams>(jsonPayload)) .Returns(new TestParams { MyInt = 90 }) .Verifiable(); var subject = new RestSharpRequestHandler(token); subject.RestClient = mockRestClient.Object; subject.ResponseParser = mockParser.Object; var result = subject.ExecuteAndDeserializeRequest<TestParams>(path, dictionaryParams, HttpMethod.PUT, fileRequest); Assert.Equal(90, result.MyInt); mockParser.Verify(); mockRestClient.Verify(); }
public void ExecuteAndDeserializeRequestHandlesBasicRequest() { var token = "xxx"; var path = "/root"; var jsonPayload = "{\"json\": \"result\""; var restResponse = new RestResponse(); restResponse.Content = jsonPayload; var mockRestClient = new Mock<IRestClient>(); mockRestClient.Setup(r => r.Execute(It.IsAny<IRestRequest>())) .Callback<IRestRequest>(r => { Assert.Equal(0, r.Files.Count); Assert.Equal(Method.POST, r.Method); Assert.Equal(path, r.Resource); Assert.Equal(1, r.Parameters.Count); Assert.Equal(token, r.Parameters[0].Value); }) .Returns(restResponse) .Verifiable(); var mockParser = new Mock<IResponseParser>(); mockParser.Setup(p => p.Deserialize<TestParams>(jsonPayload)) .Returns(new TestParams { MyInt = 90 }) .Verifiable(); var subject = new RestSharpRequestHandler(token); subject.RestClient = mockRestClient.Object; subject.ResponseParser = mockParser.Object; var result = subject.ExecuteAndDeserializeRequest<TestParams>(path); Assert.Equal(90, result.MyInt); mockParser.Verify(); mockRestClient.Verify(); }