private void Serializes_ErrorResponseData(ISerializer serializer)
        {
            var error = new ErrorResponseData(ErrorResponseCodes.UnauthorizedRequest, "crap", true);

            var pack = new ResponsePacket(error);

            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                    using (var reader = new BinaryReader(ms)) {
                        pack.Serialize(writer, serializer);

                        ms.Position = 0;

                        var p2 = new TestDataPacket();
                        p2.Deserialize(reader, serializer);

                        Assert.AreEqual(error.Code, p2.As <ErrorResponseData>().Code);
                        Assert.AreEqual(error.Message, p2.As <ErrorResponseData>().Message);
                        Assert.AreEqual(error.IsCritical, p2.As <ErrorResponseData>().IsCritical);
                        Assert.AreEqual(error.GetType(), p2.Data.GetType());
                        Assert.AreEqual(typeof(ErrorResponseData).AssemblyQualifiedName, p2.DataType);
                    }
        }