public void SetUp()
        {
            _memoryStream            = _multipleElemBytes.ConvertToMemoryStream();
            _mockCallTreeElemFactory = new TestingCallTreeElemFactory();

            _mockMetadataCache = new Mock <MetadataCache <MethodMetadata> >();
            _mockMetadataCache.SetupAllProperties();

            _rootElem = new TestingCallTreeElem(_memoryStream, _mockCallTreeElemFactory, _mockMetadataCache.Object);
        }
        public void TreeDeserializationTest()
        {
            //0x143458:[TestAssembly]TestNamespace.TestClass.TestMessageWith2Arguments(testArgumentA, testArgumentB),Twc=331eafs,Tum=31fcf5s,Tkm=0s,Ec=a,Lc=a
            TestingCallTreeElem testingCallTreeElem = _rootElem.Children[0].Children[0].Children[1];

            Assert.AreEqual(0x143458, testingCallTreeElem.FunctionId);
            Assert.AreEqual(0x331eaf, testingCallTreeElem.WallClockDurationHns);
            Assert.AreEqual(0x31fcf5, testingCallTreeElem.UserModeDurationHns);
            Assert.AreEqual(0, testingCallTreeElem.KernelModeDurationHns);
            Assert.AreEqual(0xA, testingCallTreeElem.EnterCount);
            Assert.AreEqual(0xA, testingCallTreeElem.LeaveCount);
        }
        public void FieldsDeserializationTest()
        {
            MemoryStream memoryStream = _singleElemBytes.ConvertToMemoryStream();
            var          callTreeElem = new TestingCallTreeElem(memoryStream, _mockCallTreeElemFactory, _mockMetadataCache.Object);

            Assert.AreEqual(ExpectedFunctionId, callTreeElem.FunctionId);
            Assert.AreEqual(ExpectedEnterCount, callTreeElem.EnterCount);
            Assert.AreEqual(ExpectedLeaveCount, callTreeElem.LeaveCount);
            Assert.AreEqual(ExpectedWallClockDurationHns, callTreeElem.WallClockDurationHns);
            Assert.AreEqual(ExpectedKernelModeDurationHns, callTreeElem.KernelModeDurationHns);
            Assert.AreEqual(ExpectedUserModeDurationHns, callTreeElem.UserModeDurationHns);
            Assert.AreEqual(ExpectedChildrenCount, callTreeElem.ChildrenCount);

            Assert.AreEqual(memoryStream.Length, memoryStream.Position);
        }