public async Task PostInvalidRecipeTextField1ReturnsBadRequestCode()
        {
            // Arrange
            var client = _factory.CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false
            });

            var invalidRecipe = new FakeRecipeDto().Generate();

            invalidRecipe.RecipeTextField1 = null;

            // Act
            var httpResponse = await client.PostAsJsonAsync("api/v1/recipes", invalidRecipe)
                               .ConfigureAwait(false);

            // add something like this to read the errors in the body?
            //var body = JsonConvert.DeserializeObject<ValidationResult>(await httpResponse.Content.ReadAsStringAsync()
            //    .ConfigureAwait(false));

            // Assert
            httpResponse.StatusCode.Should().Be(400);
        }
        public async Task PostRecipeReturnsSuccessCodeAndResourceWithAccurateFields()
        {
            // Arrange
            var client = _factory.CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false
            });
            var fakeRecipe = new FakeRecipeDto().Generate();

            // Act
            var httpResponse = await client.PostAsJsonAsync("api/v1/recipes", fakeRecipe)
                               .ConfigureAwait(false);

            // Assert
            httpResponse.EnsureSuccessStatusCode();

            var resultDto = JsonConvert.DeserializeObject <RecipeDto>(await httpResponse.Content.ReadAsStringAsync()
                                                                      .ConfigureAwait(false));

            httpResponse.StatusCode.Should().Be(201);
            resultDto.RecipeTextField1.Should().Be(fakeRecipe.RecipeTextField1);
            resultDto.RecipeTextField2.Should().Be(fakeRecipe.RecipeTextField2);
            resultDto.RecipeDateField1.Should().Be(fakeRecipe.RecipeDateField1);
        }