public ActivitySourceConfiguration(ActivitySourceConfiguration other)
 {
     this.ActivityName       = other.ActivityName;
     this.ActivitySourceName = other.ActivitySourceName;
     this.CapturedData       = other.CapturedData;
     this.CapturedEvents     = other.CapturedEvents;
 }
        private void VerifyActivityEvent(
            EventData e,
            string activityName,
            string activitySourceName,
            CapturedActivityEvents activityEventType,
            string traceId,
            string parentSpanId,
            bool recorded             = false,
            ActivityKind activityKind = ActivityKind.Internal,
            IDictionary <string, Func <object, bool> > requiredProps = null,
            IEnumerable <string> nonexistentProps = null
            )
        {
            Assert.Equal(activityName, e.Payload["Name"]);
            Assert.Equal(activitySourceName, e.Payload["ActivitySourceName"]);
            Assert.True(e.Payload.ContainsKey("StartTime"));
            if (activityEventType == CapturedActivityEvents.Stop)
            {
                Assert.True(e.Payload.ContainsKey("EndTime"));
            }
            Assert.Equal(traceId, e.Payload["TraceId"]);
            Assert.Equal(parentSpanId, e.Payload["ParentSpanId"]);
            Assert.Equal(recorded, e.Payload["IsRecording"]);
            Assert.Equal(activityKind, Enum.Parse(typeof(ActivityKind), (string)e.Payload["SpanKind"]));

            if (requiredProps != null)
            {
                foreach (var p in requiredProps)
                {
                    Assert.True(p.Value(e.Payload[p.Key]), $"Assertion failed for activity '{activityName}': property '{p.Key}' has unexpected value: '{e.Payload[p.Key]}'");
                }
            }

            if (nonexistentProps != null)
            {
                foreach (var np in nonexistentProps)
                {
                    Assert.DoesNotContain(e.Payload, p => p.Key.Equals(np, StringComparison.Ordinal));
                }
            }
        }
 public ActivitySourceConfiguration()
 {
     this.ActivityName   = this.ActivitySourceName = null;
     this.CapturedData   = ActivitySamplingResult.AllData;
     this.CapturedEvents = CapturedActivityEvents.Stop;
 }