public void Inbound_WithoutTraceParent(bool contextualActivity) { var listener = new CollectingTraceListener(); this.strategy.TraceSource = new TraceSource("test", SourceLevels.ActivityTracing) { Listeners = { listener }, }; Guid testActivityId = contextualActivity ? Guid.NewGuid() : Guid.Empty; Trace.CorrelationManager.ActivityId = testActivityId; try { using (IDisposable? state = this.strategy.ApplyInboundActivity(this.request)) { Assert.NotEqual(testActivityId, Trace.CorrelationManager.ActivityId); } // No transfers should have been recorded since there was no parent activity. Assert.Empty(listener.Transfers); Assert.Equal(testActivityId, Trace.CorrelationManager.ActivityId); } finally { Trace.CorrelationManager.ActivityId = Guid.Empty; } }
public void Inbound_Activity(bool predefinedActivity, bool upperCaseTraceParent) { var listener = new CollectingTraceListener(); this.strategy.TraceSource = new TraceSource("test", SourceLevels.ActivityTracing) { Listeners = { listener }, }; Guid testContext = Guid.NewGuid(); if (predefinedActivity) { Trace.CorrelationManager.ActivityId = testContext; } this.request.TraceParent = upperCaseTraceParent ? SampleTraceParent.ToUpperInvariant() : SampleTraceParent; (Guid RelatedActivityId, Guid CurrentActivityId)transfer1; using (this.strategy.ApplyInboundActivity(this.request)) { transfer1 = Assert.Single(listener.Transfers); Assert.Equal(SampleParentId, transfer1.CurrentActivityId); Assert.NotEqual(SampleParentId, transfer1.RelatedActivityId); Assert.NotEqual(testContext, transfer1.RelatedActivityId); Assert.Equal(transfer1.RelatedActivityId, Trace.CorrelationManager.ActivityId); var start = listener.Events.Single(e => e.EventType == TraceEventType.Start); Assert.Equal(this.request.Method, start.Message); } Assert.Equal(predefinedActivity ? testContext : Guid.Empty, Trace.CorrelationManager.ActivityId); var stop = listener.Events.Single(e => e.EventType == TraceEventType.Stop); Assert.Equal(this.request.Method, stop.Message); Assert.Equal(2, listener.Transfers.Count); var transfer2 = listener.Transfers[1]; Assert.Equal(SampleParentId, transfer2.RelatedActivityId); Assert.Equal(transfer1.RelatedActivityId, transfer2.CurrentActivityId); }