public void JobLoggerCanAggregateLoggersExceptions() { JobLogger jl = JobLogger.Instance; jl.Reset(); StubLogger consoleLogger1 = new StubConsoleLogger(); StubLogger consoleLogger2 = new StubConsoleLogger(); StubLogger exceptionLogger1 = new StubExceptionThrowingLogger(); StubLogger exceptionLogger2 = new StubExceptionThrowingLogger(); StubLogger exceptionLogger3 = new StubExceptionThrowingLogger(); List<ILogger> loggers = new List<ILogger> { exceptionLogger1, consoleLogger1, exceptionLogger2, consoleLogger2, exceptionLogger3 }; jl.SetLoggers(loggers); jl.AcceptMessages<ErrorMessage>(); jl.LogMessage(new ErrorMessage("Error message.")); }
public void JobLoggerCanContinueIfLoggersThrowExceptions() { int numberOfException = 0; string msg_text = "Error message."; JobLogger jl = JobLogger.Instance; jl.Reset(); StubLogger consoleLogger1 = new StubConsoleLogger(); StubLogger consoleLogger2 = new StubConsoleLogger(); StubLogger exceptionLogger1 = new StubExceptionThrowingLogger(); StubLogger exceptionLogger2 = new StubExceptionThrowingLogger(); StubLogger exceptionLogger3 = new StubExceptionThrowingLogger(); List<ILogger> loggers = new List<ILogger> { exceptionLogger1, consoleLogger1, exceptionLogger2, consoleLogger2, exceptionLogger3 }; jl.SetLoggers(loggers); jl.AcceptMessages<ErrorMessage>(); try { jl.LogMessage(new ErrorMessage(msg_text)); } catch (AggregateException agg) { numberOfException = agg.InnerExceptions.Count(); } Assert.AreEqual(3, numberOfException); Assert.AreEqual(1, consoleLogger1.Output.Count); Assert.AreEqual(1, consoleLogger2.Output.Count); CollectionAssert.AreEqual(new List<string> { msg_text }, consoleLogger1.Output); CollectionAssert.AreEqual(new List<string> { msg_text }, consoleLogger2.Output); }