/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Security/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs
94 строки
3 KB
Pranav K
Use file scoped namespaces (#38076)
06 ноя 2021, 03:52
Не верифицирован
06 ноя 2021, 03:52
a450cb6
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.Testing; using Xunit; namespace AuthSamples.FunctionalTests; public class DynamicSchemeTests : IClassFixture<WebApplicationFactory<DynamicSchemes.Startup>> { public DynamicSchemeTests(WebApplicationFactory<DynamicSchemes.Startup> fixture) { Client = fixture.CreateClient(); } public HttpClient Client { get; } [Fact] public async Task DefaultReturns200() { // Arrange & Act var response = await Client.GetAsync("/"); var content = await response.Content.ReadAsStringAsync(); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); } [Fact] public async Task CanAddUpdateRemoveSchemes() { // Arrange & Act var response = await AddScheme("New1", "NewOne"); var content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Contains("New1", content); Assert.Contains("NewOne", content); response = await AddScheme("New2", "NewTwo"); content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Contains("New1", content); Assert.Contains("NewOne", content); Assert.Contains("New2", content); Assert.Contains("NewTwo", content); response = await AddScheme("New2", "UpdateTwo"); content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Contains("New1", content); Assert.Contains("NewOne", content); Assert.Contains("New2", content); Assert.DoesNotContain("NewTwo", content); Assert.Contains("UpdateTwo", content); // Now remove all the schemes one at a time response = await Client.GetAsync("/Auth/Remove?scheme=New1"); content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.DoesNotContain("New1", content); Assert.DoesNotContain("NewOne", content); Assert.Contains("New2", content); Assert.DoesNotContain("NewTwo", content); Assert.Contains("UpdateTwo", content); response = await Client.GetAsync("/Auth/Remove?scheme=New2"); content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.DoesNotContain("New1", content); Assert.DoesNotContain("NewOne", content); Assert.DoesNotContain("New2", content); Assert.DoesNotContain("NewTwo", content); Assert.DoesNotContain("UpdateTwo", content); } private async Task<HttpResponseMessage> AddScheme(string name, string message) { var goToSignIn = await Client.GetAsync("/"); var signIn = await TestAssert.IsHtmlDocumentAsync(goToSignIn); var form = TestAssert.HasForm(signIn); return await Client.SendAsync(form, new Dictionary<string, string>() { ["scheme"] = name, ["OptionsMessage"] = message, }); } }