示例#1
0
        public void SerializationTest()
        {
            var entry = new FromToValue <byte>
            {
                From = 1,
                To   = 2
            };

            entry.Excludes.AddRange(new byte[] { 1, 2 });

            var copy = new FromToValue <byte>(1, 2);

            copy.Excludes.AddRange(new byte[] { 1, 2 });

            // Test PatchChange Equals

            Assert.IsTrue(entry.Equals(copy));
            Assert.IsTrue(entry.Equals((object)copy));
            Assert.IsTrue(entry.Equals((IGetValue <byte>)copy));
            Assert.IsFalse(entry.Equals(new object()));
            Assert.IsFalse(entry.Equals((IGetValue <byte>) new FixedValue <byte>()));
            Assert.AreEqual(entry.GetHashCode(), copy.GetHashCode());

            copy.Excludes.Add(3);

            Assert.AreNotEqual(entry.GetHashCode(), copy.GetHashCode());

            // Test PatchConfig Equals

            var json = SerializationHelper.SerializeToJson(entry);

            copy = SerializationHelper.DeserializeFromJson <FromToValue <byte> >(json);

            Assert.IsTrue(copy.Equals(copy));
            Assert.IsTrue(copy.Equals((object)copy));
            Assert.IsTrue(copy.Equals((IGetValue <byte>)copy));
            Assert.IsFalse(copy.Equals(new object()));
            Assert.IsFalse(copy.Equals((IGetValue <byte>) new FixedValue <byte>()));
            Assert.AreEqual(copy.GetHashCode(), copy.GetHashCode());

            copy.Excludes.Clear();

            Assert.AreEqual(copy.GetHashCode(), copy.GetHashCode());
        }