public void TestEquals() { var a1 = new MongoUser("u", "h", false); var a2 = new MongoUser("u", "h", false); var a3 = a2; var b = new MongoUser("x", "h", false); var c = new MongoUser("u", "x", false); var d = new MongoUser("u", "h", true); var null1 = (MongoUser)null; var null2 = (MongoUser)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 == 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 != null1); Assert.IsTrue(null1 != a1); Assert.IsFalse(null1 != null2); Assert.AreEqual(a1.GetHashCode(), a2.GetHashCode()); }