/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Http/Routing/test/FunctionalTests/WebHostBuilderExtensionsTest.cs
104 строки
4 KB
Shreyas Jejurkar
chore : Remove unwanted `using` statement (#39176)
02 янв 2022, 17:39
Не верифицирован
02 янв 2022, 17:39
c85baf8
Код
Авторство
О чём код?
// 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.Net.Http; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Microsoft.AspNetCore.Routing.FunctionalTests; public class WebHostBuilderExtensionsTest { public static TheoryData<Action<IRouteBuilder>, HttpRequestMessage, string> MatchesRequest { get { return new TheoryData<Action<IRouteBuilder>, HttpRequestMessage, string>() { { (rb) => rb.MapGet("greeting/{name}", (req, resp, routeData) => resp.WriteAsync($"Hello! {routeData.Values["name"]}")), new HttpRequestMessage(HttpMethod.Get, "greeting/James"), "Hello! James" }, { (rb) => rb.MapPost( "greeting/{name}", async (req, resp, routeData) => { var streamReader = new StreamReader(req.Body); var data = await streamReader.ReadToEndAsync(); await resp.WriteAsync($"{routeData.Values["name"]} {data}"); }), new HttpRequestMessage(HttpMethod.Post, "greeting/James") { Content = new StringContent("Biography") }, "James Biography" }, { (rb) => rb.MapPut( "greeting/{name}", async (req, resp, routeData) => { var streamReader = new StreamReader(req.Body); var data = await streamReader.ReadToEndAsync(); await resp.WriteAsync($"{routeData.Values["name"]} {data}"); }), new HttpRequestMessage(HttpMethod.Put, "greeting/James") { Content = new StringContent("Biography") }, "James Biography" }, { (rb) => rb.MapDelete("greeting/{name}", (req, resp, routeData) => resp.WriteAsync($"Hello! {routeData.Values["name"]}")), new HttpRequestMessage(HttpMethod.Delete, "greeting/James"), "Hello! James" }, { (rb) => rb.MapVerb( "POST", "greeting/{name}", async (req, resp, routeData) => { var streamReader = new StreamReader(req.Body); var data = await streamReader.ReadToEndAsync(); await resp.WriteAsync($"{routeData.Values["name"]} {data}"); }), new HttpRequestMessage(HttpMethod.Post, "greeting/James") { Content = new StringContent("Biography") }, "James Biography" }, }; } } [Theory] [MemberData(nameof(MatchesRequest))] public async Task UseRouter_MapGet_MatchesRequest(Action<IRouteBuilder> routeBuilder, HttpRequestMessage request, string expected) { // Arrange using var host = new HostBuilder() .ConfigureWebHost(webhostbuilder => { webhostbuilder .Configure(app => { app.UseRouter(routeBuilder); }) .UseTestServer(); }) .ConfigureServices(services => services.AddRouting()) .Build(); var testServer = host.GetTestServer(); await host.StartAsync(); var client = testServer.CreateClient(); // Act var response = await client.SendAsync(request); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actual = await response.Content.ReadAsStringAsync(); Assert.Equal(expected, actual); } }