public void from_static_method_in_derived_class_show_correct_CallingType() { string param = Guid.NewGuid().ToString(); var log = new List <LogEntry>(); using (Log.Events().Subscribe(log.Add)) { InheritedWidget.DoStuffStatically(param); } Assert.That(log.Single(e => e.EventType == TraceEventType.Start).CallingType, Is.EqualTo(typeof(Widget))); Assert.That(log.Single(e => e.EventType == TraceEventType.Stop).CallingType, Is.EqualTo(typeof(Widget))); }
public void from_instance_method_in_derived_class_show_correct_CallingType() { var entries = new List <LogEntry>(); using (Log.Events().Subscribe(entries.Add)) { var widget = new InheritedWidget(); widget.DoStuff(); } Assert.That(entries.Single(e => e.EventType == TraceEventType.Start).CallingType, Is.EqualTo(typeof(InheritedWidget))); Assert.That(entries.Single(e => e.EventType == TraceEventType.Stop).CallingType, Is.EqualTo(typeof(InheritedWidget))); }
public void Parameter_logging_can_be_disabled_per_class() { var log = new StringWriter(); Extension <Boundaries> .DisableFor <InheritedWidget>(); using (Log.Events().Subscribe(e => log.Write(e.ToLogString()))) { var w = new Widget(); var iw = new InheritedWidget(); w.DoStuff("should be in log"); iw.DoStuff("should not be in log"); } StringAssert.Contains("should be in log", log.ToString()); StringAssert.DoesNotContain("should not be in log", log.ToString()); }
public void ToLogString_uses_actual_type_formatter_and_not_compiled_type() { Widget widget = new InheritedWidget(); bool widgetFormatterCalled = false; bool inheritedWidgetFormatterCalled = false; Formatter <Widget> .Register(w => { widgetFormatterCalled = true; return(""); }); Formatter <InheritedWidget> .Register(w => { inheritedWidgetFormatterCalled = true; return(""); }); widget.ToLogString(); Assert.That(!widgetFormatterCalled); Assert.That(inheritedWidgetFormatterCalled); }