public void ExtractExceptionFromPayload_HandleExceptionPayload() { NullReferenceException exception = new NullReferenceException(); Exception?result = DiagnosticsObserversInitializer.ExtractExceptionFromPayload(exception); Assert.AreEqual(exception, result); }
public void ExtractExceptionFromPayload_HandleExceptionProperty() { ArgumentException exception = new ArgumentException(); Exception? result = DiagnosticsObserversInitializer.ExtractExceptionFromPayload(new { Exception = exception }); Assert.AreEqual(exception, result); }
public async Task DiagnosticsObserversInitializer_InvokedProperly() { string name = nameof(DiagnosticsObserversInitializer_InvokedProperly); MockLogger logger = new MockLogger(); Mock <IActivityStartObserver> startObserver = new Mock <IActivityStartObserver>(); Mock <IActivityStopObserver> stopObserver = new Mock <IActivityStopObserver>(); DiagnosticsObserversInitializer initializer = new DiagnosticsObserversInitializer( new[] { startObserver.Object }, new[] { stopObserver.Object }, logger); try { await initializer.StartAsync(CancellationToken.None).ConfigureAwait(false); using DiagnosticListener listener = new DiagnosticListener(name); AssertEnabledFor(listener, HttpRequestOutEventName); AssertEnabledFor(listener, HttpRequestInEventName); AssertEnabledFor(listener, ExceptionEventName); AssertEnabledFor(listener, MakeStartName(name)); AssertEnabledFor(listener, MakeStopName(name)); Assert.IsFalse(listener.IsEnabled(name, "Should be disabled for other events")); Activity activity = new Activity(name); object obj = new object(); listener.StartActivity(activity, obj); startObserver.Verify(obs => obs.OnStart(activity, obj), Times.Once); listener.StopActivity(activity, obj); stopObserver.Verify(obs => obs.OnStop(activity, obj), Times.Once); Exception exception = new ArithmeticException(); listener.Write(ExceptionEventName, exception); Assert.IsTrue(logger.Exceptions.Contains(exception), "Should log exception event"); } catch { await initializer.StopAsync(CancellationToken.None).ConfigureAwait(false); throw; } }
public void ExtractExceptionFromPayload_HandleNullValue() { Exception?result = DiagnosticsObserversInitializer.ExtractExceptionFromPayload(null); Assert.IsNull(result); }