public async Task PostsContentToEndpoint(User inputData, JSendClient client)
 {
     // Exercise system
     using (client)
         using (var response = await client.PostAsync <User>("http://localhost/users/post-echo", inputData))
         {
             // Verify outcome
             response.Data.ShouldBeEquivalentTo(inputData);
         }
 }
示例#2
0
        public async Task PostAsync_SetsContentTypeHeader(
            [FrozenAsHttpClient] HttpClientSpy httpClientSpy,
            Uri uri, object content, [Greedy] JSendClient client)
        {
            // Exercise system
            await client.PostAsync(uri, content);

            // Verify outcome
            var request = httpClientSpy.Request;

            request.Content.Headers.ContentType.MediaType.Should().Be("application/json");
        }
示例#3
0
        public async Task PostAsync_SendsPostRequest(
            [FrozenAsHttpClient] HttpClientSpy httpClientSpy,
            Uri uri, object content, [Greedy] JSendClient client)
        {
            // Exercise system
            await client.PostAsync(uri, content);

            // Verify outcome
            var request = httpClientSpy.Request;

            request.Method.Should().Be(HttpMethod.Post);
        }
示例#4
0
        public async Task PostAsync_SetsCharSet(
            [FrozenAsHttpClient] HttpClientSpy httpClientSpy,
            Uri uri, object content, [Greedy] JSendClient client)
        {
            // Fixture setup
            var expectedCharSet = client.Encoding.WebName;
            // Exercise system
            await client.PostAsync(uri, content);

            // Verify outcome
            var request = httpClientSpy.Request;

            request.Content.Headers.ContentType.CharSet.Should().Be(expectedCharSet);
        }
示例#5
0
        public async Task PostAsync_SerializesContent(
            [FrozenAsHttpClient] HttpClientSpy httpClientSpy,
            Uri uri, Model content, [Greedy] JSendClient client)
        {
            // Fixture setup
            var expectedContent = JsonConvert.SerializeObject(content);
            // Exercise system
            await client.PostAsync(uri, content);

            // Verify outcome
            var actualContent = httpClientSpy.Content;

            actualContent.Should().Be(expectedContent);
        }
示例#6
0
        public async Task PostAsync_SetsUri(
            string uri,
            Uri expectedUri,
            object content,
            [FrozenAsHttpClient] HttpClientSpy httpClientSpy,
            [Greedy] JSendClient client)
        {
            // Exercise system
            await client.PostAsync(uri, content);

            // Verify outcome
            var request = httpClientSpy.Request;

            request.RequestUri.Should().Be(expectedUri);
        }
示例#7
0
        public async Task PostAsync_ReturnsParsedResponse(
            HttpResponseMessage httpResponse, JSendResponse <JToken> parsedResponse,
            [FrozenAsHttpClient] HttpClientStub httpClientStub,
            Uri uri, Model content, [Greedy] JSendClient client)
        {
            // Fixture setup
            httpClientStub.ReturnOnSend = httpResponse;

            Mock.Get(client.Parser)
            .Setup(p => p.ParseAsync <JToken>(It.IsAny <JsonSerializerSettings>(), httpResponse))
            .ReturnsAsync(parsedResponse);
            // Exercise system
            var response = await client.PostAsync(uri, content);

            // Verify outcome
            response.Should().BeSameAs(parsedResponse);
        }
        public async Task SendsPostRequestsToTheCorrectEndpoint(
            string baseAddress, string requestUri,
            User user, JSendClient client)
        {
            using (client)
            {
                // Fixture setup
                client.HttpClient.BaseAddress = baseAddress == null ? null : new Uri(baseAddress);

                // Exercise system
                using (var response = await client.PostAsync <string>(requestUri, user))
                {
                    // Verify outcome
                    response.Status.Should().Be(JSendStatus.Success);
                    response.Data.Should().Be("post");
                }
            }
        }
        public async Task SendsPostRequestsToTheCorrectEndpoint(
            string baseAddress, string requestUri,
            User user, JSendClient client)
        {
            using (client)
            {
                // Fixture setup
                client.HttpClient.BaseAddress = baseAddress == null ? null : new Uri(baseAddress);

                // Exercise system
                using (var response = await client.PostAsync<string>(requestUri, user))
                {
                    // Verify outcome
                    response.Status.Should().Be(JSendStatus.Success);
                    response.Data.Should().Be("post");
                }
            }
        }
示例#10
0
 public async Task PostsContentToEndpoint(User inputData, JSendClient client)
 {
     // Exercise system
     using (client)
     using (var response = await client.PostAsync<User>("http://localhost/users/post-echo", inputData))
     {
         // Verify outcome
         response.Data.ShouldBeEquivalentTo(inputData);
     }
 }