public void DisposeOnLoggerFactory_CallsDisposeOn_AllRegisteredLoggerProviders() { // Arrange var loggerProvider1 = new TestLoggerProvider(new TestSink(), isEnabled: true); var loggerProvider2 = new TestLoggerProvider(new TestSink(), isEnabled: true); // Imagine this to be the default logger factory that is provided by the host and is // present in DI. var loggerFactoryFromHost = new LoggerFactory(); // Imagine this to be the user code which adds the wrapped logger providers. var filterLoggerFactory = loggerFactoryFromHost .WithFilter(new FilterLoggerSettings() { { "Microsoft", LogLevel.Warning }, { "System", LogLevel.Warning }, { "SampleApp", LogLevel.Debug }, }); filterLoggerFactory.AddProvider(loggerProvider1); filterLoggerFactory.AddProvider(loggerProvider2); var logger1 = loggerFactoryFromHost.CreateLogger("Microsoft.foo"); // Act loggerFactoryFromHost.Dispose(); // Assert Assert.True(loggerProvider1.DisposeCalled); Assert.True(loggerProvider2.DisposeCalled); }