Exemple #1
0
        public async Task ShouldSetAcceptHeaderInRequest()
        {
            // arrange
            const string requestUri = "/fake";
            const string charset    = "utf-8";
            const double quality    = 1.02;
            const string mediaType  = "text/html";
            string       value      = $"{mediaType};charset={charset};q={quality}";
            HttpClient   client     = new HttpClient();
            IHttpClientVerbBuilder <HttpClient> builder = new HttpClientVerbBuilder <HttpClient>(client);

            // act
            HttpRequestMessage httpRequest = await client
                                             .Request()
                                             .Get(requestUri)
                                             .Header("Accept", value)
                                             .BuildHttpRequestAsync();

            MediaTypeWithQualityHeaderValue header = httpRequest.Headers.Accept.FirstOrDefault();

            // assert
            Assert.NotNull(header);
            Assert.True(header.MediaType == mediaType);
            Assert.True(header.CharSet == charset);
            Assert.StrictEqual(header.Quality, quality);
        }
Exemple #2
0
        public async Task ShouldHttpMethodGet()
        {
            // arrange
            const string      requestUri        = "/fake";
            string            method            = null;
            CancellationToken cancellationToken = CancellationToken.None;
            var webHostBuilder = new WebHostBuilder()
                                 .Configure(app =>
            {
                app.Run(async context =>
                {
                    method = context.Request.Method;
                    context.Response.StatusCode = 200;
                });
            });
            TestServer server = new TestServer(webHostBuilder);
            HttpClient client = server.CreateClient();
            IHttpClientVerbBuilder <HttpClient> builder = new HttpClientVerbBuilder <HttpClient>(client);

            // act
            HttpResponseMessage response = await client
                                           .Request()
                                           .Get(requestUri)
                                           .SendAsync(cancellationToken);

            // assert
            Assert.True(response.IsSuccessStatusCode);
            Assert.Matches("GET", method);
        }
        public void ShouldBuildPostHttpMethod()
        {
            // arrange
            const string url        = "http://fakeurl/";
            var          httpClient = new MockedHttpClient();
            IHttpClientVerbBuilder <MockedHttpClient> builder = new HttpClientVerbBuilder <MockedHttpClient>(httpClient);

            // act
            IHttpClientQueryBuilder queryBuilder = builder.Post(url);

            // assert
            Assert.Matches(queryBuilder.HttpMethod.Method, "POST");
        }
Exemple #4
0
        public async Task ShouldGetSuccessfulHttpResponseWithNonNullableDateTimeQueryString()
        {
            // arrange
            DateTime          value             = new DateTime(2010, 5, 11, 10, 30, 02, 03);
            const string      requestUri        = "/fake";
            CancellationToken cancellationToken = CancellationToken.None;
            var webHostBuilder = new WebHostBuilder()
                                 .Configure(app =>
            {
                app.Run(async context =>
                {
                    DateTime parsedResult;
                    string r = context.Request.Query.FirstOrDefault(q => q.Key == nameof(value)).Value.FirstOrDefault();
                    DateTime.TryParse(r, out parsedResult);
                    context.Response.ContentType = "application/json";
                    var resultPayload            = JsonConvert.SerializeObject(new FakePayload {
                        NonNullDateTime = parsedResult
                    });
                    await context.Response.WriteAsync(resultPayload, cancellationToken);
                });
            });
            TestServer server = new TestServer(webHostBuilder);
            HttpClient client = server.CreateClient();
            IHttpClientVerbBuilder <HttpClient> builder = new HttpClientVerbBuilder <HttpClient>(client);

            // act
            HttpResponseMessage response = await client
                                           .Request()
                                           .Get(requestUri)
                                           .Query(nameof(value), value)
                                           .SendAsync(cancellationToken);

            // assert
            Assert.True(response.IsSuccessStatusCode);
            Assert.NotNull(response.Content);
            var result = await response.Content.FromJsonAsync <FakePayload>(cancellationToken);

            Assert.True(result.NonNullDateTime.Year == value.Year);
            Assert.True(result.NonNullDateTime.Month == value.Month);
            Assert.True(result.NonNullDateTime.Day == value.Day);
            Assert.True(result.NonNullDateTime.Hour == value.Hour);
            Assert.True(result.NonNullDateTime.Minute == value.Minute);
            Assert.True(result.NonNullDateTime.Second == value.Second);
            Assert.True(result.NonNullDateTime.Millisecond == value.Millisecond);
        }
Exemple #5
0
        public async Task ShouldSetAuthorizationHeaderInRequest(string scheme, string parameter)
        {
            // arrange
            const string requestUri = "/fake";
            HttpClient   client     = new HttpClient();
            IHttpClientVerbBuilder <HttpClient> builder = new HttpClientVerbBuilder <HttpClient>(client);

            // act
            HttpRequestMessage httpRequest = await client
                                             .Request()
                                             .Get(requestUri)
                                             .Header("Authorization", $"{scheme} {parameter}")
                                             .BuildHttpRequestAsync();

            AuthenticationHeaderValue header = httpRequest.Headers.Authorization;

            // assert
            Assert.NotNull(header);
            Assert.True(header.Scheme == scheme);
            Assert.True(header.Parameter == parameter);
        }
        public void ShouldBuildPostHttpMethodWithJsonPayload()
        {
            // arrange
            const string url     = "http://fakeurl/";
            var          payload = new FakePayload
            {
                Id = 10,
                NonNullDateTime  = new DateTime(2010, 1, 1, 10, 00, 00),
                Note             = "Note1",
                NullableDateTime = new DateTime(2012, 1, 1, 1, 0, 0, 0),
                Token            = Guid.NewGuid()
            };
            var httpClient = new MockedHttpClient();
            IHttpClientVerbBuilder <MockedHttpClient> builder = new HttpClientVerbBuilder <MockedHttpClient>(httpClient);

            // act
            IHttpClientQueryBuilder queryBuilder = builder.PostAsJson(url, payload);

            // assert
            Assert.NotNull(queryBuilder.Content);
            Assert.Matches(queryBuilder.HttpMethod.Method, "POST");
            JsonContent content = Assert.IsType <JsonContent>(queryBuilder.Content);
        }