예제 #1
0
        public void TestIExternalizable()
        {
            var reader = new Amf3Reader();
            var writer = new Amf3Writer();

            reader.RegisterExternalizable <iexternalizable>();

            var ext = new iexternalizable()
            {
                v1 = 0.1,
                v2 = 1
            };

            using (var sc = new SerializationContext())
            {
                writer.WriteBytes(ext, sc);
                var buffer = new byte[sc.MessageLength];
                sc.GetMessage(buffer);

                Assert.IsTrue(reader.TryGetObject(buffer, out var readVal, out var consumed));
                var val = (iexternalizable)readVal;

                Assert.AreEqual(val.v1, ext.v1);
                Assert.AreEqual(val.v2, ext.v2);
                Assert.AreEqual(buffer.Length, consumed);
            }
        }