diff options
Diffstat (limited to 'src/Http/Http.Results/test')
-rw-r--r-- | src/Http/Http.Results/test/ProblemResultTests.cs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/Http/Http.Results/test/ProblemResultTests.cs b/src/Http/Http.Results/test/ProblemResultTests.cs index 4e6c38a567..688bd1ecf7 100644 --- a/src/Http/Http.Results/test/ProblemResultTests.cs +++ b/src/Http/Http.Results/test/ProblemResultTests.cs @@ -70,6 +70,38 @@ public class ProblemResultTests } [Fact] + public async Task ExecuteAsync_IncludeErrors_ForValidationProblemDetails() + { + // Arrange + var details = new HttpValidationProblemDetails(new Dictionary<string, string[]> + { + { "testError", new string[] { "message" } } + }); + + var result = new ProblemHttpResult(details); + var stream = new MemoryStream(); + var httpContext = new DefaultHttpContext() + { + RequestServices = CreateServices(), + Response = + { + Body = stream, + }, + }; + + // Act + await result.ExecuteAsync(httpContext); + + // Assert + Assert.Equal(StatusCodes.Status400BadRequest, httpContext.Response.StatusCode); + stream.Position = 0; + var responseDetails = JsonSerializer.Deserialize<HttpValidationProblemDetails>(stream); + Assert.Equal(StatusCodes.Status400BadRequest, responseDetails.Status); + var error = Assert.Single(responseDetails.Errors); + Assert.Equal("testError", error.Key); + } + + [Fact] public async Task ExecuteAsync_GetsStatusCodeFromProblemDetails() { // Arrange |