/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Mvc/test/Mvc.FunctionalTests/SystemTextJsonOutputFormatterTest.cs
85 строк
3 KB
Korolev Dmitry
Verify MVC / Razor Pages support for unions (#67005)
08 июн 2026, 21:00
Не верифицирован
08 июн 2026, 21:00
f097397
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Net; using System.Text.Encodings.Web; using FormatterWebSite.Controllers; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Mvc.FunctionalTests; public partial class SystemTextJsonOutputFormatterTest : JsonOutputFormatterTestBase<FormatterWebSite.StartupWithJsonFormatter> { [Fact] public override Task SerializableErrorIsReturnedInExpectedFormat() => base.SerializableErrorIsReturnedInExpectedFormat(); [Fact] public override async Task Formatting_StringValueWithUnicodeContent() { // Act var response = await Client.GetAsync($"/JsonOutputFormatter/{nameof(JsonOutputFormatterController.StringWithUnicodeResult)}"); // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); Assert.Equal("\"Hello Mr. \\uD83E\\uDD8A\"", await response.Content.ReadAsStringAsync()); } [Fact] public async Task Formatting_WithCustomEncoder() { // Arrange static void ConfigureServices(IServiceCollection serviceCollection) { serviceCollection.AddControllers() .AddJsonOptions(o => o.JsonSerializerOptions.Encoder = JavaScriptEncoder.Default); } var client = Factory.WithWebHostBuilder(c => c.ConfigureServices(ConfigureServices)).CreateClient(); // Act var response = await client.GetAsync($"/JsonOutputFormatter/{nameof(JsonOutputFormatterController.StringWithNonAsciiContent)}"); // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); Assert.Equal("\"Une b\\u00EAte de cirque\"", await response.Content.ReadAsStringAsync()); } [Fact] public override Task Formatting_DictionaryType() => base.Formatting_DictionaryType(); [Fact] public override Task Formatting_ProblemDetails() => base.Formatting_ProblemDetails(); [Fact] public override Task Formatting_PolymorphicModel() => base.Formatting_PolymorphicModel(); [Fact] public async Task Formatting_PolymorphicModel_WithJsonPolymorphism() { // Arrange var expected = "{\"$type\":\"DerivedModel\",\"address\":\"Some address\",\"id\":10,\"name\":\"test\",\"streetName\":null}"; // Act var response = await Client.GetAsync($"/SystemTextJsonOutputFormatter/{nameof(SystemTextJsonOutputFormatterController.PolymorphicResult)}"); // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); Assert.Equal(expected, await response.Content.ReadAsStringAsync()); } // Regression test: https://github.com/dotnet/aspnetcore/issues/57895 [Fact] public async Task CanSetHeaderWithAsyncEnumerable() { // Arrange var expected = "[1]"; // Act var response = await Client.GetAsync($"/SystemTextJsonOutputFormatter/{nameof(SystemTextJsonOutputFormatterController.AsyncEnumerable)}"); // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); Assert.Equal(expected, await response.Content.ReadAsStringAsync()); var headerValue = Assert.Single(response.Headers.GetValues("Test")); Assert.Equal("t", headerValue); } }