public static void ValidateErrReport(ErrReport err, int code, string atClass, string atMethod, string msg, List<string> stackText) { TestHelpers.ErrToConsole(err); Assert.AreEqual(code, err.Code); Assert.AreEqual(atClass, err.AtClass); Assert.AreEqual(atMethod, err.AtMethod); Assert.AreEqual(msg, err.Msg); ValidateErrReportStack(err, stackText); }
private void LogToConsole(MsgLevel level, ErrReport report) { if (report.StackTrace.Length > 0) { Console.WriteLine("{0}\t{1}\t{2}.{3} - {4}{5}{6}", report.Code, level.ShortName(), report.AtClass, report.AtMethod, report.Msg, Environment.NewLine, report.StackTrace); } else { Console.WriteLine("{0}\t{1}\t{2}.{3} - {4}", report.Code, level.ShortName(), report.AtClass, report.AtMethod, report.Msg); } }
public static ErrReport CatchExpected(int code, string atClass, string atMethod, string msg, Action action) { ErrReport err = new ErrReport(); WrapErr.ToErrReport(out err, -999999, "Unexpected Error running Test", () => { action.Invoke(); }); Assert.AreNotEqual(-999999, err.Code, "The CatchExpected has put out its own error"); TestHelpers.ValidateErrReport(err, code, atClass, atMethod, msg); return err; }
public static void CatchUnexpected(Action action) { ErrReport err = new ErrReport(); WrapErr.ToErrReport(out err, -1, "Unexpected Error running Test", () => { action.Invoke(); }); if (err.Code != 0) { TestHelpers.ErrToConsole(err); Assert.Fail("Unexpected Exception Occured on test:{0} {1}", err.Code, err.Msg); } }
public static void ValidateErrReport(ErrReport err, int code, string atClass, string atMethod, string msg) { ValidateErrReport(err, code, atClass, atMethod, msg, new List<string>()); }
public static void ErrToConsole(ErrReport e) { Console.WriteLine("{0} {1}.{2} : {3}{4}{5}", e.Code, e.AtClass, e.AtMethod, e.Msg, Environment.NewLine, e.StackTrace); }
/// <summary> /// Registered with the timer to fire on wakeup event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_Elapsed(object sender, ElapsedEventArgs e) { // Trap any exceptions using the OnWakeup event handler ErrReport err = new ErrReport(); WrapErr.ToErrReport(out err, 9999, "", () => { if (this.OnWakeup != null) { this.OnWakeup(); } }); // We will have no decision based on results }
/// <summary> /// Grab the ErrReport from every log event /// </summary> /// <param name="level"></param> /// <param name="errReport"></param> void Log_OnLogMsgEvent(MsgLevel level, ErrReport errReport) { this.errors.Add(errReport); }
public static void ValidateErrReportStack(ErrReport err, params string[] msgs) { ValidateErrReportStack(err, msgs.ToList()); }
private void Validate(ErrReport err, int code, string method, string msg) { TestHelpers.ValidateErrReport(err, code, "ToErrorReportExceptionTests", method, msg, "OuterClass.DoNestedException", "InnerClass.DoException"); }
private void LogDelegate(ErrReport report) { //Console.WriteLine("LogDelegateInvoked:{0} {1}.{2} : {3}", report.Code, report.AtClass, report.AtMethod, report.Msg); this.logged = true; }
/// <summary> /// Constructor /// </summary> /// <param name="report">The error report object</param> public ErrReportException(ErrReport report) : base() { this.report = report; }
/// <summary> /// Push the log message to the log message event subscribers /// </summary> /// <param name="eventData"></param> private static void RaiseEvent(MsgLevel level, ErrReport msg) { if (Log.OnLogMsgEvent != null) { WrapErr.SafeAction(() => Log.OnLogMsgEvent(level, msg)); } else { System.Diagnostics.Debug.WriteLine("No subscribers to log message event"); } }
/// <summary> /// Log the message /// </summary> /// <param name="level">The message level</param> /// <param name="msg">The message object</param> public static void LogMsg(MsgLevel level, ErrReport msg) { if (Log.IsVerboseEnough(level)) { lock (Log.msgQLock) { Log.messages.Add(new KeyValuePair<MsgLevel, ErrReport>(level, msg)); if (Log.messages.Count >= Log.msgNumberThreshold) { Log.msgWaitEvent.Set(); } } } }
/// <summary> /// Conforms the the ChkUtils LogingMsgDelegate that can be passed into the /// wrappers to push information to a logger when an exception is caught /// </summary> /// <param name="report">The object with the error information</param> public static void LogExceptionDelegate(ErrReport report) { Log.LogMsg(MsgLevel.Exception, report); }
public static void ValidateErrReport(ErrReport err, int code, string atClass, string atMethod, string msg, params string[] stackText) { ValidateErrReport(err, code, atClass, atMethod, msg, stackText.ToList()); }
public void Setup() { LogUtils.Log.SetVerbosity(MsgLevel.Info); LogUtils.Log.SetMsgNumberThreshold(1); this.consoleWriter.StartLogging(); this.currentLevel = MsgLevel.Off; this.currentReport = new ErrReport(); }
void Log_OnLogMsgEvent(MsgLevel level, ErrReport errReport) { this.currentLevel = level; this.currentReport = errReport; }
public static void ValidateErrReportStack(ErrReport err, List<string> msgs) { msgs.ForEach( item => Assert.IsTrue(err.StackTrace.Contains(item.ToString()), String.Format("ErrReport in Stack Does not contain:{0}", item.ToString()))); }
private void Validate(ErrReport err, int code, string method, string msg) { TestHelpers.ValidateErrReport(err, code, "ValidatorTests", method, msg); // Assert.AreEqual("", err.StackTrace); }