/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Mvc/Mvc.RazorPages/test/PageLoggerExtensionsTest.cs
187 строк
6 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.Reflection; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure; using Microsoft.Extensions.Logging.Testing; namespace Microsoft.AspNetCore.Mvc; public class PageLoggerExtensionsTest { [Fact] public void ExecutingPageFactory_LogsPageName() { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext { ActionDescriptor = new CompiledPageActionDescriptor { // Using a generic type to verify the use of a clean name PageTypeInfo = typeof(ValueTuple<int, string>).GetTypeInfo() } }; // Act logger.ExecutingPageFactory(context); // Assert var write = Assert.Single(testSink.Writes); Assert.Equal( "Executing page factory for page " + "System.ValueTuple<int, string> (System.Private.CoreLib)", write.State.ToString()); } [Fact] public void ExecutedPageFactory_LogsPageName() { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext { ActionDescriptor = new CompiledPageActionDescriptor { // Using a generic type to verify the use of a clean name PageTypeInfo = typeof(ValueTuple<int, string>).GetTypeInfo() } }; // Act logger.ExecutedPageFactory(context); // Assert var write = Assert.Single(testSink.Writes); Assert.Equal( "Executed page factory for page " + "System.ValueTuple<int, string> (System.Private.CoreLib)", write.State.ToString()); } [Fact] public void ExecutingPageModelFactory_LogsPageName() { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext { ActionDescriptor = new CompiledPageActionDescriptor { // Using a generic type to verify the use of a clean name PageTypeInfo = typeof(ValueTuple<int, string>).GetTypeInfo() } }; // Act logger.ExecutingPageModelFactory(context); // Assert var write = Assert.Single(testSink.Writes); Assert.Equal( "Executing page model factory for page " + "System.ValueTuple<int, string> (System.Private.CoreLib)", write.State.ToString()); } [Fact] public void ExecutedPageModelFactory_LogsPageName() { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext { ActionDescriptor = new CompiledPageActionDescriptor { // Using a generic type to verify the use of a clean name PageTypeInfo = typeof(ValueTuple<int, string>).GetTypeInfo() } }; // Act logger.ExecutedPageModelFactory(context); // Assert var write = Assert.Single(testSink.Writes); Assert.Equal( "Executed page model factory for page " + "System.ValueTuple<int, string> (System.Private.CoreLib)", write.State.ToString()); } [Theory] [InlineData(true)] [InlineData(false)] public void ExecutingHandlerMethod_LogsHandlerNameAndModelState(bool isValidModelState) { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext(); if (!isValidModelState) { context.ModelState.AddModelError("foo", "bar"); } var handler = new HandlerMethodDescriptor { // Using a generic type to verify the use of a clean name MethodInfo = typeof(ValueTuple<int, string>).GetMethod(nameof(ToString)), }; // Act logger.ExecutingHandlerMethod(context, handler, null); // Assert var write = Assert.Single(testSink.Writes); var validationState = isValidModelState ? "Valid" : "Invalid"; Assert.Equal( $"Executing handler method System.ValueTuple<int, string>.ToString - ModelState is {validationState}", write.State.ToString()); } [Theory] [InlineData("")] [InlineData("foo", "foo")] [InlineData("foo, 42", "foo", 42)] public void ExecutingHandlerMethod_WithArguments_LogsArguments(string expectedArgumentsMessage, params object[] arguments) { // Arrange var testSink = new TestSink(); var loggerFactory = new TestLoggerFactory(testSink, enabled: true); var logger = loggerFactory.CreateLogger("test"); var context = new PageContext(); var handler = new HandlerMethodDescriptor { // Using a generic type to verify the use of a clean name MethodInfo = typeof(ValueTuple<int, string>).GetMethod(nameof(ToString)), }; // Act logger.ExecutingHandlerMethod(context, handler, arguments); // Assert Assert.Equal(2, testSink.Writes.Count); var enumerator = testSink.Writes.GetEnumerator(); enumerator.MoveNext(); enumerator.MoveNext(); Assert.Equal( $"Executing handler method System.ValueTuple<int, string>.ToString with arguments ({expectedArgumentsMessage})", enumerator.Current.State.ToString()); } }