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 }); }