public void TransactionSampleDataSerializesCorrectly()
        {
            // Arrange
            const string expected  = @"[1514768400000,1000.0,""Transaction Name"",""Transaction URI"",[1514768400000,{},{},[0.0,1000.0,""Segment Name"",{},[],""Segment Class Name"",""Segment Method Name""],{""agentAttributes"":{},""userAttributes"":{},""intrinsics"":{}}],""Transaction GUID"",null,false,null,null]";
            var          timestamp = new DateTime(2018, 1, 1, 1, 0, 0, DateTimeKind.Utc);
            var          transactionTraceSegment = new TransactionTraceSegment(TimeSpan.Zero, TimeSpan.FromSeconds(1), "Segment Name", new Dictionary <string, object>(), new List <TransactionTraceSegment>(), "Segment Class Name", "Segment Method Name");

            var transactionTrace  = new TransactionTraceData(timestamp, transactionTraceSegment, new AttributeValueCollection(AttributeDestinations.TransactionTrace));
            var transactionSample = new TransactionTraceWireModel(timestamp, TimeSpan.FromSeconds(1), "Transaction Name", "Transaction URI", transactionTrace, "Transaction GUID", null, null, false);

            // Act
            var actual = JsonConvert.SerializeObject(transactionSample);

            // Assert
            Assert.AreEqual(expected, actual);
        }
 public TransactionTraceData(DateTime startTime, TransactionTraceSegment rootSegment, IAttributeValueCollection attribValues)
 {
     StartTime   = startTime;
     RootSegment = rootSegment;
     Attributes  = new TransactionTraceAttributes(attribValues);
 }