private void TestActivityTransfer(Activity outgoingActivity) { HeaderMock header = new HeaderMock(); Mock <IServiceRemotingRequestMessage> requestMock = new Mock <IServiceRemotingRequestMessage>(); requestMock.Setup(m => m.GetHeader()).Returns(header); outgoingActivity.Start(); requestMock.Object.AttachActivityToOutgoingRequest(outgoingActivity); outgoingActivity.Stop(); using DiagnosticListener listener = CreateActiveListener("TestListeners"); Activity?incomingActivity = requestMock.Object.StartActivityFromIncomingRequest(listener, outgoingActivity.OperationName + "_Out"); NullableAssert.IsNotNull(incomingActivity); incomingActivity.Stop(); Assert.AreEqual(outgoingActivity.Id, incomingActivity.ParentId); CollectionAssert.AreEqual(outgoingActivity.Baggage.ToArray(), incomingActivity.Baggage.ToArray()); }
private void TestActivityTransfer(Activity outgoingActivity) { // run in separate thread to avoid interference from other activities Task.Run(() => { HeaderMock header = new HeaderMock(); Mock <IServiceRemotingRequestMessage> requestMock = new Mock <IServiceRemotingRequestMessage>(); requestMock.Setup(m => m.GetHeader()).Returns(header); outgoingActivity.Start(); requestMock.Object.AttachActivityToOutgoingRequest(outgoingActivity); outgoingActivity.Stop(); Activity incomingActivity = new Activity(outgoingActivity.OperationName + "_Out").Start(); requestMock.Object.ExtractActivityFromIncomingRequest(incomingActivity); incomingActivity.Stop(); Assert.AreEqual(outgoingActivity.Id, incomingActivity.ParentId); CollectionAssert.AreEquivalent(outgoingActivity.Baggage.ToArray(), incomingActivity.Baggage.ToArray()); }); }