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());
        }
Пример #2
0
        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());
            });
        }