Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Oliveira <brunolins16@users.noreply.github.com>2022-05-13 12:15:05 +0300
committerGitHub <noreply@github.com>2022-05-13 12:15:05 +0300
commit1230a1a9fcc2eddecdfed5e88c8d46da21194af6 (patch)
tree75999f9f4f6ad24b7b22eb79801aed418cb4db25 /src/Http/Http.Results
parentcab4c6ec6e900b2c4b5b93f2237c6972efebc02a (diff)
Using WriteJsonAsync<object?> operation for ProblemHttpResult (#41670)
* Using non-generic Write operation for ProblemHttpResult * Update unit tests * Removing ThrowIfNull * PR Feedback
Diffstat (limited to 'src/Http/Http.Results')
-rw-r--r--src/Http/Http.Results/src/ProblemHttpResult.cs2
-rw-r--r--src/Http/Http.Results/test/ProblemResultTests.cs32
2 files changed, 33 insertions, 1 deletions
diff --git a/src/Http/Http.Results/src/ProblemHttpResult.cs b/src/Http/Http.Results/src/ProblemHttpResult.cs
index bd7e72ff87..9fdf1f2c1d 100644
--- a/src/Http/Http.Results/src/ProblemHttpResult.cs
+++ b/src/Http/Http.Results/src/ProblemHttpResult.cs
@@ -53,7 +53,7 @@ public sealed class ProblemHttpResult : IResult
httpContext.Response.StatusCode = code;
}
- return HttpResultsHelper.WriteResultAsJsonAsync(
+ return HttpResultsHelper.WriteResultAsJsonAsync<object?>(
httpContext,
logger,
value: ProblemDetails,
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