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