Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public async Task BuildAsync_NonExtensionProvider_IsAlwaysIncluded()
manager.AddProvider((_, _) => mockProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
factory.CreateLogger("test");
_ = factory.CreateLogger("test");

mockProvider.Verify(p => p.CreateLogger("test"), Times.Once);
}
Expand All @@ -85,7 +85,7 @@ public async Task BuildAsync_EnabledExtensionProvider_IsIncluded()
manager.AddProvider((_, _) => mockProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
factory.CreateLogger("test");
_ = factory.CreateLogger("test");

mockProvider.Verify(p => p.CreateLogger("test"), Times.Once);
}
Expand All @@ -99,7 +99,7 @@ public async Task BuildAsync_DisabledExtensionProvider_IsExcluded()
manager.AddProvider((_, _) => mockProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
factory.CreateLogger("test");
_ = factory.CreateLogger("test");

mockProvider.Verify(p => p.CreateLogger(It.IsAny<string>()), Times.Never);
}
Expand All @@ -115,7 +115,7 @@ public async Task BuildAsync_InitializableExtensionProvider_WhenEnabled_CallsIni
manager.AddProvider((_, _) => mockProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
factory.CreateLogger("test");
_ = factory.CreateLogger("test");

mockProvider.Verify(p => p.InitializeAsync(), Times.Once);
mockProvider.Verify(p => p.CreateLogger("test"), Times.Once);
Expand Down Expand Up @@ -144,11 +144,32 @@ public async Task BuildAsync_NonExtensionInitializableProvider_CallsInitializeAs
manager.AddProvider((_, _) => mockProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
factory.CreateLogger("test");
_ = factory.CreateLogger("test");

mockProvider.Verify(p => p.InitializeAsync(), Times.Once);
Comment thread
Evangelink marked this conversation as resolved.
mockProvider.Verify(p => p.CreateLogger("test"), Times.Once);
}

[TestMethod]
public async Task BuildAsync_MultipleProviders_OnlyIncludesEnabledOnes()
{
LoggingManager manager = new();

Mock<IExtensionLoggerProvider> disabledProvider = new();
disabledProvider.Setup(p => p.IsEnabledAsync()).ReturnsAsync(false);

Mock<ILoggerProvider> enabledProvider = new();
enabledProvider.Setup(p => p.CreateLogger(It.IsAny<string>())).Returns(new Mock<ILogger>().Object);

manager.AddProvider((_, _) => disabledProvider.Object);
manager.AddProvider((_, _) => enabledProvider.Object);

ILoggerFactory factory = await manager.BuildAsync(_mockServiceProvider.Object, LogLevel.Information, _mockMonitor.Object);
_ = factory.CreateLogger("test");

disabledProvider.Verify(p => p.CreateLogger(It.IsAny<string>()), Times.Never);
enabledProvider.Verify(p => p.CreateLogger("test"), Times.Once);
Comment thread
Evangelink marked this conversation as resolved.
Outdated
}
}

internal interface IExtensionLoggerProvider : ILoggerProvider, IExtension;
Expand Down
Loading