public void TestFollowFromReference()
        {
            MockTracer tracer    = new MockTracer(Propagators.TextMap);
            MockSpan   precedent = (MockSpan)tracer.BuildSpan("precedent").Start();

            MockSpan followingSpan = (MockSpan)tracer.BuildSpan("follows")
                                     .AddReference(References.FollowsFrom, precedent.Context)
                                     .Start();

            Assert.Equal(precedent.Context.SpanId, followingSpan.ParentId);
            Assert.Single(followingSpan.References);

            MockSpan.Reference followsFromRef = followingSpan.References[0];

            Assert.Equal(new MockSpan.Reference(precedent.Context, References.FollowsFrom), followsFromRef);
        }
        public void TestMultiReferences()
        {
            MockTracer tracer    = new MockTracer(Propagators.TextMap);
            MockSpan   parent    = (MockSpan)tracer.BuildSpan("parent").Start();
            MockSpan   precedent = (MockSpan)tracer.BuildSpan("precedent").Start();

            MockSpan followingSpan = (MockSpan)tracer.BuildSpan("follows")
                                     .AddReference(References.FollowsFrom, precedent.Context)
                                     .AsChildOf(parent.Context)
                                     .Start();

            Assert.Equal(parent.Context.SpanId, followingSpan.ParentId);
            Assert.Equal(2, followingSpan.References.Count);

            MockSpan.Reference followsFromRef = followingSpan.References[0];
            MockSpan.Reference parentRef      = followingSpan.References[1];

            Assert.Equal(new MockSpan.Reference(precedent.Context, References.FollowsFrom), followsFromRef);
            Assert.Equal(new MockSpan.Reference(parent.Context, References.ChildOf), parentRef);
        }