using GitConverter.Lib.Logging; using GitConverter.TestsApp.TestSupport; namespace GitConverter.TestsApp.Logging { /// /// Verifies Log.Disable sets logging to no-op and subsequent Log calls are not delivered to a previously active logger. /// [Collection("Logging")] public class LogDisableTests { [Fact] public void Disable_ReplacesLogger_WithNoOp() { var testLogger = new TestLogger(); // swap and ensure messages go to test logger var previous = Log.Current; Log.Current = testLogger; try { Log.Info("before-disable"); Assert.Contains(testLogger.InfoMessages, m => m.Contains("before-disable", StringComparison.OrdinalIgnoreCase)); // disable global logging Log.Disable(); // write more messages Log.Info("after-disable"); // testLogger should not have received the message written after disable Assert.DoesNotContain(testLogger.InfoMessages, m => m.Contains("after-disable", StringComparison.OrdinalIgnoreCase)); } finally { // restore previous logger to avoid cross-test interference Log.Current = previous; } } } }