public void TestEquals() { var a = new SafeMode(false); var b = new SafeMode(false); var c = new SafeMode(true); var n = (SafeMode)null; Assert.IsTrue(object.Equals(a, b)); Assert.IsFalse(object.Equals(a, c)); Assert.IsFalse(a.Equals(n)); Assert.IsFalse(a.Equals(null)); Assert.IsTrue(a == b); Assert.IsFalse(a == c); Assert.IsFalse(a == null); Assert.IsFalse(null == a); Assert.IsTrue(n == null); Assert.IsTrue(null == n); Assert.IsFalse(a != b); Assert.IsTrue(a != c); Assert.IsTrue(a != null); Assert.IsTrue(null != a); Assert.IsFalse(n != null); Assert.IsFalse(null != n); }
public void TestEquals() { var a1 = new SafeMode(false); var a2 = new SafeMode(true) { Enabled = false }; var a3 = a2; var b = new SafeMode(false) { Enabled = true }; var c = new SafeMode(false) { FSync = true }; var d = new SafeMode(false) { Journal = true }; var e = new SafeMode(false) { W = 2 }; var f = new SafeMode(false) { WMode = "mode" }; var g = new SafeMode(false) { W = 2, WTimeout = TimeSpan.FromMinutes(1) }; var null1 = (SafeMode)null; var null2 = (SafeMode)null; Assert.AreNotSame(a1, a2); Assert.AreSame(a2, a3); Assert.IsTrue(a1.Equals((object)a2)); Assert.IsFalse(a1.Equals((object)null)); Assert.IsFalse(a1.Equals((object)"x")); Assert.IsTrue(a1 == a2); Assert.IsTrue(a2 == a3); Assert.IsFalse(a1 == b); Assert.IsFalse(a1 == c); Assert.IsFalse(a1 == d); Assert.IsFalse(a1 == e); Assert.IsFalse(a1 == f); Assert.IsFalse(a1 == g); Assert.IsFalse(a1 == null1); Assert.IsFalse(null1 == a1); Assert.IsTrue(null1 == null2); Assert.IsFalse(a1 != a2); Assert.IsFalse(a2 != a3); Assert.IsTrue(a1 != b); Assert.IsTrue(a1 != c); Assert.IsTrue(a1 != d); Assert.IsTrue(a1 != e); Assert.IsTrue(a1 != f); Assert.IsTrue(a1 != g); Assert.IsTrue(a1 != null1); Assert.IsTrue(null1 != a1); Assert.IsFalse(null1 != null2); var hash = a1.GetHashCode(); Assert.AreEqual(hash, a2.GetHashCode()); // check that all tests still pass after objects are Frozen a1.Freeze(); a2.Freeze(); a3.Freeze(); b.Freeze(); c.Freeze(); d.Freeze(); e.Freeze(); f.Freeze(); g.Freeze(); Assert.AreNotSame(a1, a2); Assert.AreSame(a2, a3); Assert.IsTrue(a1.Equals((object)a2)); Assert.IsFalse(a1.Equals((object)null)); Assert.IsFalse(a1.Equals((object)"x")); Assert.IsTrue(a1 == a2); Assert.IsTrue(a2 == a3); Assert.IsFalse(a1 == b); Assert.IsFalse(a1 == c); Assert.IsFalse(a1 == d); Assert.IsFalse(a1 == e); Assert.IsFalse(a1 == f); Assert.IsFalse(a1 == g); Assert.IsFalse(a1 == null1); Assert.IsFalse(null1 == a1); Assert.IsTrue(null1 == null2); Assert.IsFalse(a1 != a2); Assert.IsFalse(a2 != a3); Assert.IsTrue(a1 != b); Assert.IsTrue(a1 != c); Assert.IsTrue(a1 != d); Assert.IsTrue(a1 != e); Assert.IsTrue(a1 != f); Assert.IsTrue(a1 != g); Assert.IsTrue(a1 != null1); Assert.IsTrue(null1 != a1); Assert.IsFalse(null1 != null2); Assert.AreEqual(hash, a1.GetHashCode()); Assert.AreEqual(hash, a2.GetHashCode()); }