public void MustCorrectlyForwardCalls() { var exception = new Exception(); var loggerMock = new Mock <ILogger>(); var logObserverMock = new Mock <ILogObserver>(); var logText = new LogText("Log text"); var sut = new ModuleLogger(loggerMock.Object, nameof(ModuleLoggerTests)); loggerMock.SetupGet(l => l.LogLevel).Returns(LogLevel.Error); sut.LogLevel = LogLevel.Debug; sut.Debug("Debug"); sut.Info("Info"); sut.Warn("Warning"); sut.Error("Error"); sut.Error("Error", exception); sut.Log("Raw text"); sut.Subscribe(logObserverMock.Object); sut.Unsubscribe(logObserverMock.Object); sut.GetLog(); loggerMock.VerifySet(l => l.LogLevel = LogLevel.Debug, Times.Once); loggerMock.Verify(l => l.Debug($"[{nameof(ModuleLoggerTests)}] Debug"), Times.Once); loggerMock.Verify(l => l.Info($"[{nameof(ModuleLoggerTests)}] Info"), Times.Once); loggerMock.Verify(l => l.Warn($"[{nameof(ModuleLoggerTests)}] Warning"), Times.Once); loggerMock.Verify(l => l.Error($"[{nameof(ModuleLoggerTests)}] Error"), Times.Once); loggerMock.Verify(l => l.Error($"[{nameof(ModuleLoggerTests)}] Error", exception), Times.Once); loggerMock.Verify(l => l.Log("Raw text"), Times.Once); loggerMock.Verify(l => l.Subscribe(logObserverMock.Object), Times.Once); loggerMock.Verify(l => l.Unsubscribe(logObserverMock.Object), Times.Once); loggerMock.Verify(l => l.GetLog(), Times.Once); Assert.AreEqual(LogLevel.Error, sut.LogLevel); }
public void MustCorrectlyClone() { var loggerMock = new Mock <ILogger>(); var sut = new ModuleLogger(loggerMock.Object, nameof(ModuleLoggerTests)); var clone = sut.CloneFor("blubb"); sut.Debug("Debug"); clone.Debug("Debug"); loggerMock.Verify(l => l.Debug($"[{nameof(ModuleLoggerTests)}] Debug"), Times.Once); loggerMock.Verify(l => l.Debug($"[blubb] Debug"), Times.Once); }