Example #1
0
        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);
            }
        }
Example #2
0
        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 BuildApiPathHandlesEmptyExpressions()
        {
            var subject = new RestSharpRequestHandler("xxx");

            var result = subject.BuildApiPath("/root");

            Assert.Equal("/root", 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);
        }
        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);
        }
Example #14
0
        /// <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 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();
        }