public void LengthIsCached()
        {
            IDataPacket subPacket1 = _mockRepository.StrictMock <IDataPacket>();
            IDataPacket subPacket2 = _mockRepository.StrictMock <IDataPacket>();
            IDataPacket dataPacket = null;

            With.Mocks(_mockRepository).Expecting(delegate
            {
                subPacket1.Expect(x => x.Length).Return(Length1).Repeat.Any();
                subPacket2.Expect(x => x.Length).Return(Length2).Repeat.Any();
            }).Verify(delegate
            {
                dataPacket = new DataPacketNode(subPacket1, subPacket2);
            });

            With.Mocks(_mockRepository).Expecting(delegate
            {
                // No calls on the sub-packets expected!!
            }).Verify(delegate
            {
                Assert.AreEqual((Length1 + Length2), dataPacket.Length);
            });
        }