public void UnPackCorrectly()
        {
            var networkMessagePackager = new NetworkMessagePackager();

            var testPacket = new TestPacket()
            {
                Number = 3,
                Name   = "Test"
            };

            networkMessagePackager.AddDefinition <TestPacket>();

            var value  = networkMessagePackager.Package(testPacket);
            var result = (TestPacket)networkMessagePackager.Unpack(value);

            result.Name.ShouldBe(testPacket.Name);
            result.Number.ShouldBe(testPacket.Number);
        }
        public void PackageCorrectlyBasedOnType()
        {
            var networkMessagePackager = new NetworkMessagePackager();

            var testPacket = new TestPacket()
            {
                Number = 3,
                Name   = "Test"
            };

            var definition = networkMessagePackager.AddDefinition <TestPacket>();

            var value = networkMessagePackager.Package(testPacket);

            var expectedString = $"{definition.PacketTypeId}:{testPacket.Number}:{testPacket.Name}";
            var outputString   = Encoding.UTF8.GetString(value);

            outputString.ShouldBe(expectedString);
        }