public void CatcherTest() { var errors = new List <Exception>(); var runner = new ThreadRunner("TEST", (ex) => { errors.Add(ex); throw new Exception("Catcher"); }); runner.Run(() => { throw new Exception("First"); }); runner.Run(() => { throw new Exception("Second"); }); runner.Dispose(); Assert.AreEqual(2, errors.Count); Assert.AreEqual("First", errors[0].Message); Assert.AreEqual("Second", errors[1].Message); }
public void DisposeUsingTest() { var errors = new List <Exception>(); using (var runner = new ThreadRunner("TEST", (ex) => { errors.Add(ex); })) { runner.Run(() => { throw new Exception("First"); }); } Assert.AreEqual(1, errors.Count); Assert.AreEqual("First", errors[0].Message); }
public void DisposeExplicitTest() { var errors = new List <Exception>(); var runner = new ThreadRunner("TEST", (ex) => { errors.Add(ex); }); runner.Run(() => { throw new Exception("First"); }); runner.Dispose(); runner.Dispose(() => { throw new Exception("Already Disposed"); }); Assert.AreEqual(1, errors.Count); Assert.AreEqual("First", errors[0].Message); }
public void AddAppender(ILogAppender appender) { runner.Run(() => appenders.Add(appender.Append)); }