public async Task Invoke_AgainstUnknownEndpointWithTextHeaderNotTriggeringRequestBeingLogged_MustFail()
        {
            // Arrange
            using HttpClient httpClient =
                      await testWebApplicationFactory.CreateClientWithJwtAsync().ConfigureAwait(false);

            var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "qwerty/123456");

            httpRequestMessage.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("qwerty/123456"));

            // Act
            HttpResponseMessage httpResponseMessage =
                await httpClient.SendAsync(httpRequestMessage).ConfigureAwait(false);

            // Assert
            httpResponseMessage.IsSuccessStatusCode.Should().BeFalse();
        }
Exemplo n.º 2
0
        public async Task CreateAsync_UsingValidTodoItem_ReturnsExpectedId()
        {
            // Arrange
            using HttpClient httpClient = await webApplicationFactory.CreateClientWithJwtAsync();

            long?id = null;

            try
            {
                var newTodoItemModel = new NewTodoItemModel
                {
                    Name       = $"it--{nameof(CreateAsync_UsingValidTodoItem_ReturnsExpectedId)}--{Guid.NewGuid():N}",
                    IsComplete = DateTime.UtcNow.Ticks % 2 == 0
                };

                // Act
                HttpResponseMessage response = await httpClient.PostAsJsonAsync(BaseUrl, newTodoItemModel);

                // Assert
                using (new AssertionScope())
                {
                    response.IsSuccessStatusCode.Should().BeTrue(BecauseAnEntityHasBeenCreated);
                    response.StatusCode.Should().Be(HttpStatusCode.Created, BecauseAnEntityHasBeenCreated);

                    id = await response.Content.ReadAsAsync <long>();

                    id.Should().BeGreaterOrEqualTo(1, BecauseAnEntityHasBeenCreated);
                }
            }
            finally
            {
                if (id.HasValue)
                {
                    HttpResponseMessage response = await httpClient.DeleteAsync($"{BaseUrl}/{id}");

                    response.IsSuccessStatusCode.Should().BeTrue(BecauseCleanupMustSucceed);
                }
            }
        }
        public async Task CreateAsync_UsingValidTodoItem_ReturnsTheSameInstance()
        {
            // Arrange
            using HttpClient httpClient =
                      await testWebApplicationFactory.CreateClientWithJwtAsync().ConfigureAwait(false);

            long?id = null;

            try
            {
                var newTodoItemModel = new NewTodoItemModel
                {
                    Name       = $"it--{nameof(CreateAsync_UsingValidTodoItem_ReturnsTheSameInstance)}--{Guid.NewGuid():N}",
                    IsComplete = DateTime.UtcNow.Ticks % 2 == 0
                };

                // Act
                HttpResponseMessage response =
                    await httpClient.PostAsJsonAsync(BaseUrl, newTodoItemModel).ConfigureAwait(false);

                // Assert
                response.IsSuccessStatusCode.Should().BeTrue();
                response.StatusCode.Should().Be(HttpStatusCode.Created);

                id = await response.Content.ReadAsAsync <long>().ConfigureAwait(false);

                id.Should().BeGreaterOrEqualTo(1);
            }
            finally
            {
                if (id.HasValue)
                {
                    HttpResponseMessage response =
                        await httpClient.DeleteAsync($"{BaseUrl}/{id}").ConfigureAwait(false);

                    response.IsSuccessStatusCode.Should().BeTrue("cleanup must succeed");
                }
            }
        }