Exemplo n.º 1
0
        public void Test_Diff_Self_Ref()
        {
            TestSelfRefA a = new TestSelfRefA();

            a.Self = a;

            byte[] data = BinarySerializer.Serialize(a);
            var    b    = BinarySerializer.Deserialize <DiffTestSelfRefA>(data);

            Assert.True(object.ReferenceEquals(b, b.Self));
        }
        public async Task Test_SelfRef(int len)
        {
            TestSelfRefA a = new TestSelfRefA();

            a.A = new string('A', len);

            a.Self = a;

            await Test(a, b =>
            {
                Assert.True(Object.ReferenceEquals(b, b.Self));
                Assert.Equal(a.A, b.A);
                Assert.True(Object.ReferenceEquals(b.Self, b.Self.Self));
            }, new BinarySerializerOptions()
            {
                DefaultBufferSize = 1
            });
        }
        public async Task Test_SelfRef_Array(int len)
        {
            TestSelfRefA a = new TestSelfRefA();

            a.A = new string('A', len);

            a.Self = a;

            TestSelfRefA[] array = new TestSelfRefA[] { a, a, a };

            await Test(array, b =>
            {
                Assert.True(Object.ReferenceEquals(b[0], b[1]));
                Assert.True(Object.ReferenceEquals(b[0], b[2]));
                Assert.Equal(a.A, b[0].A);
                Assert.True(Object.ReferenceEquals(b[0].Self, b[0].Self.Self));
            }, new BinarySerializerOptions()
            {
                DefaultBufferSize = 1
            });
        }