Fix tests that were mocking ILogger (#3066)

This commit is contained in:
Pavel Krymets 2018-10-30 15:15:55 -07:00 committed by Chris Ross
parent d05ef9be3a
commit 6603f41677
3 changed files with 97 additions and 154 deletions

View File

@ -8,30 +8,30 @@
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-alpha1-10657</InternalAspNetCoreAnalyzersPackageVersion> <InternalAspNetCoreAnalyzersPackageVersion>3.0.0-alpha1-10657</InternalAspNetCoreAnalyzersPackageVersion>
<InternalAspNetCoreSdkPackageVersion>3.0.0-alpha1-20181011.3</InternalAspNetCoreSdkPackageVersion> <InternalAspNetCoreSdkPackageVersion>3.0.0-alpha1-20181011.3</InternalAspNetCoreSdkPackageVersion>
<LibuvPackageVersion>1.10.0</LibuvPackageVersion> <LibuvPackageVersion>1.10.0</LibuvPackageVersion>
<MicrosoftAspNetCoreAllPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAllPackageVersion> <MicrosoftAspNetCoreAllPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreAllPackageVersion>
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion> <MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
<MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion> <MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion>
<MicrosoftAspNetCoreHostingAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHostingAbstractionsPackageVersion> <MicrosoftAspNetCoreHostingAbstractionsPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
<MicrosoftAspNetCoreHostingPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHostingPackageVersion> <MicrosoftAspNetCoreHostingPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreHostingPackageVersion>
<MicrosoftAspNetCoreHttpAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpAbstractionsPackageVersion> <MicrosoftAspNetCoreHttpAbstractionsPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
<MicrosoftAspNetCoreHttpFeaturesPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpFeaturesPackageVersion> <MicrosoftAspNetCoreHttpFeaturesPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreHttpFeaturesPackageVersion>
<MicrosoftAspNetCoreHttpPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpPackageVersion> <MicrosoftAspNetCoreHttpPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreHttpPackageVersion>
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreTestingPackageVersion> <MicrosoftAspNetCoreTestingPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreTestingPackageVersion>
<MicrosoftAspNetCoreWebUtilitiesPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreWebUtilitiesPackageVersion> <MicrosoftAspNetCoreWebUtilitiesPackageVersion>3.0.0-alpha1-10670</MicrosoftAspNetCoreWebUtilitiesPackageVersion>
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion> <MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationBinderPackageVersion> <MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsConfigurationBinderPackageVersion>
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationCommandLinePackageVersion> <MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationJsonPackageVersion> <MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsConfigurationJsonPackageVersion>
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsDependencyInjectionPackageVersion> <MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsDependencyInjectionPackageVersion>
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingAbstractionsPackageVersion> <MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingConsolePackageVersion> <MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsLoggingConsolePackageVersion>
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingPackageVersion> <MicrosoftExtensionsLoggingPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsLoggingPackageVersion>
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingTestingPackageVersion> <MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsLoggingTestingPackageVersion>
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsOptionsPackageVersion> <MicrosoftExtensionsOptionsPackageVersion>3.0.0-alpha1-10670</MicrosoftExtensionsOptionsPackageVersion>
<MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.1.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion> <MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.1.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>
<MicrosoftNETCoreApp21PackageVersion>2.1.3</MicrosoftNETCoreApp21PackageVersion> <MicrosoftNETCoreApp21PackageVersion>2.1.3</MicrosoftNETCoreApp21PackageVersion>
<MicrosoftNETCoreApp22PackageVersion>2.2.0-rtm-27023-02</MicrosoftNETCoreApp22PackageVersion> <MicrosoftNETCoreApp22PackageVersion>2.2.0-rtm-27023-02</MicrosoftNETCoreApp22PackageVersion>
<MicrosoftNetHttpHeadersPackageVersion>3.0.0-alpha1-10660</MicrosoftNetHttpHeadersPackageVersion> <MicrosoftNetHttpHeadersPackageVersion>3.0.0-alpha1-10670</MicrosoftNetHttpHeadersPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion> <MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
<MoqPackageVersion>4.10.0</MoqPackageVersion> <MoqPackageVersion>4.10.0</MoqPackageVersion>
<NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion> <NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>

View File

@ -220,41 +220,30 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var connectionReset = new SemaphoreSlim(0); var connectionReset = new SemaphoreSlim(0);
var loggedHigherThanDebug = false; var loggedHigherThanDebug = false;
var mockLogger = new Mock<ILogger>(); TestSink.MessageLogged += context => {
mockLogger if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel" &&
.Setup(logger => logger.IsEnabled(It.IsAny<LogLevel>())) context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" &&
.Returns(true); context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")
mockLogger
.Setup(logger => logger.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
.Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
{ {
Logger.Log(logLevel, eventId, state, exception, formatter); return;
if (eventId.Id == _connectionStartedEventId) }
{
connectionStarted.Release();
}
else if (eventId.Id == _connectionResetEventId)
{
connectionReset.Release();
}
if (logLevel > LogLevel.Debug) if (context.EventId.Id == _connectionStartedEventId)
{ {
loggedHigherThanDebug = true; connectionStarted.Release();
} }
}); else if (context.EventId.Id == _connectionResetEventId)
{
connectionReset.Release();
}
var mockLoggerFactory = new Mock<ILoggerFactory>(); if (context.LogLevel > LogLevel.Debug)
mockLoggerFactory {
.Setup(factory => factory.CreateLogger(It.IsAny<string>())) loggedHigherThanDebug = true;
.Returns(Logger); }
mockLoggerFactory };
.Setup(factory => factory.CreateLogger(It.IsIn("Microsoft.AspNetCore.Server.Kestrel",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(mockLoggerFactory.Object))) using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{ {
using (var connection = server.CreateConnection()) using (var connection = server.CreateConnection())
{ {
@ -280,37 +269,26 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var connectionReset = new SemaphoreSlim(0); var connectionReset = new SemaphoreSlim(0);
var loggedHigherThanDebug = false; var loggedHigherThanDebug = false;
var mockLogger = new Mock<ILogger>(); TestSink.MessageLogged += context => {
mockLogger if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel" &&
.Setup(logger => logger.IsEnabled(It.IsAny<LogLevel>())) context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" &&
.Returns(true); context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")
mockLogger
.Setup(logger => logger.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
.Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
{ {
Logger.Log(logLevel, eventId, state, exception, formatter); return;
if (eventId.Id == _connectionResetEventId) }
{
connectionReset.Release();
}
if (logLevel > LogLevel.Debug) if (context.LogLevel > LogLevel.Debug)
{ {
loggedHigherThanDebug = true; loggedHigherThanDebug = true;
} }
});
var mockLoggerFactory = new Mock<ILoggerFactory>(); if (context.EventId.Id == _connectionResetEventId)
mockLoggerFactory {
.Setup(factory => factory.CreateLogger(It.IsAny<string>())) connectionReset.Release();
.Returns(Logger); }
mockLoggerFactory };
.Setup(factory => factory.CreateLogger(It.IsIn("Microsoft.AspNetCore.Server.Kestrel",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(mockLoggerFactory.Object))) using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{ {
using (var connection = server.CreateConnection()) using (var connection = server.CreateConnection())
{ {
@ -351,43 +329,31 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var connectionClosing = new SemaphoreSlim(0); var connectionClosing = new SemaphoreSlim(0);
var loggedHigherThanDebug = false; var loggedHigherThanDebug = false;
var mockLogger = new Mock<ILogger>(); TestSink.MessageLogged += context => {
mockLogger if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel" &&
.Setup(logger => logger.IsEnabled(It.IsAny<LogLevel>())) context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" &&
.Returns(true); context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")
mockLogger
.Setup(logger => logger.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
.Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
{ {
Logger.Log(logLevel, eventId, state, exception, formatter); return;
}
if (eventId.Id == _connectionResetEventId) if (context.LogLevel > LogLevel.Debug)
{ {
connectionReset.Release(); loggedHigherThanDebug = true;
} }
if (logLevel > LogLevel.Debug) if (context.EventId.Id == _connectionResetEventId)
{ {
loggedHigherThanDebug = true; connectionReset.Release();
} }
}); };
var mockLoggerFactory = new Mock<ILoggerFactory>();
mockLoggerFactory
.Setup(factory => factory.CreateLogger(It.IsAny<string>()))
.Returns(Logger);
mockLoggerFactory
.Setup(factory => factory.CreateLogger(It.IsIn("Microsoft.AspNetCore.Server.Kestrel",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
using (var server = new TestServer(async context => using (var server = new TestServer(async context =>
{ {
requestStarted.Release(); requestStarted.Release();
await connectionClosing.WaitAsync(); await connectionClosing.WaitAsync();
}, },
new TestServiceContext(mockLoggerFactory.Object))) new TestServiceContext(LoggerFactory)))
{ {
using (var connection = server.CreateConnection()) using (var connection = server.CreateConnection())
{ {
@ -732,37 +698,25 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var serverClosedConnection = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously); var serverClosedConnection = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var appFuncCompleted = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously); var appFuncCompleted = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var mockLogger = new Mock<ILogger>(); TestSink.MessageLogged += context => {
mockLogger if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" &&
.Setup(logger => logger.IsEnabled(It.IsAny<LogLevel>())) context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")
.Returns(true);
mockLogger
.Setup(logger => logger.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
.Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
{ {
if (eventId.Id == connectionPausedEventId) return;
{ }
readCallbackUnwired.TrySetResult(null);
}
else if (eventId.Id == connectionFinSentEventId)
{
serverClosedConnection.SetResult(null);
}
Logger.Log(logLevel, eventId, state, exception, formatter); if (context.EventId.Id == connectionPausedEventId)
}); {
readCallbackUnwired.TrySetResult(null);
var mockLoggerFactory = new Mock<ILoggerFactory>(); }
mockLoggerFactory else if (context.EventId == connectionFinSentEventId)
.Setup(factory => factory.CreateLogger(It.IsAny<string>())) {
.Returns(Logger); serverClosedConnection.SetResult(null);
mockLoggerFactory }
.Setup(factory => factory.CreateLogger(It.IsIn("Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv", };
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
var mockKestrelTrace = new Mock<IKestrelTrace>(); var mockKestrelTrace = new Mock<IKestrelTrace>();
var testContext = new TestServiceContext(mockLoggerFactory.Object, mockKestrelTrace.Object) var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)
{ {
ServerOptions = ServerOptions =
{ {

View File

@ -253,33 +253,22 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var clientClosedConnection = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously); var clientClosedConnection = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var writeTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously); var writeTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var mockKestrelTrace = new Mock<IKestrelTrace>(); TestSink.MessageLogged += context => {
var mockLogger = new Mock<ILogger>(); if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" &&
mockLogger context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")
.Setup(logger => logger.IsEnabled(It.IsAny<LogLevel>()))
.Returns(true);
mockLogger
.Setup(logger => logger.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
.Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
{ {
if (eventId.Id == connectionPausedEventId) return;
{ }
readCallbackUnwired.TrySetResult(null);
}
Logger.Log(logLevel, eventId, state, exception, formatter); if (context.EventId.Id == connectionPausedEventId)
}); {
readCallbackUnwired.TrySetResult(null);
}
};
var mockLoggerFactory = new Mock<ILoggerFactory>(); var mockKestrelTrace = new Mock<IKestrelTrace>();
mockLoggerFactory
.Setup(factory => factory.CreateLogger(It.IsAny<string>()))
.Returns(Logger);
mockLoggerFactory
.Setup(factory => factory.CreateLogger(It.IsIn("Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv",
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
var testContext = new TestServiceContext(mockLoggerFactory.Object, mockKestrelTrace.Object) var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)
{ {
ServerOptions = ServerOptions =
{ {