예제 #1
0
 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);
 }
예제 #2
0
 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);
     }
 }
예제 #3
0
 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;
 }
예제 #4
0
 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);
     }
 }
예제 #5
0
 public static void ValidateErrReport(ErrReport err, int code, string atClass, string atMethod, string msg)
 {
     ValidateErrReport(err, code, atClass, atMethod, msg, new List<string>());
 }
예제 #6
0
 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);
 }
예제 #7
0
 /// <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);
 }
예제 #9
0
 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;
 }
예제 #13
0
 /// <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");
     }
 }
예제 #14
0
 /// <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();
             }
         }
     }
 }
예제 #15
0
 /// <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);
 }
예제 #16
0
 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());
 }
예제 #17
0
        public void Setup()
        {
            LogUtils.Log.SetVerbosity(MsgLevel.Info);
            LogUtils.Log.SetMsgNumberThreshold(1);
            this.consoleWriter.StartLogging();

            this.currentLevel = MsgLevel.Off;
            this.currentReport = new ErrReport();
        }
예제 #18
0
 void Log_OnLogMsgEvent(MsgLevel level, ErrReport errReport)
 {
     this.currentLevel = level;
     this.currentReport = errReport;
 }
예제 #19
0
 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())));
 }
예제 #20
0
 private void Validate(ErrReport err, int code, string method, string msg)
 {
     TestHelpers.ValidateErrReport(err, code, "ValidatorTests", method, msg);
     //            Assert.AreEqual("", err.StackTrace);
 }