Equals, ==, and MSTest
public class SampleClass
{
public int X { get; set; }
public override bool Equals(object obj)
{
if (obj == null) return false;
if (obj.GetType() != typeof(SampleClass)) return false;
var s = obj as SampleClass;
return this.X == s.X;
}
}
Tests:
[TestMethod()]
public void EqualsTest()
{
var sc = new SampleClass { X = 1 };
var sc_copy = sc;
var sc2 = new SampleClass { X = 1 };
Assert.IsFalse(sc.Equals(null));
Assert.IsTrue(sc.Equals(sc));
Assert.IsTrue(sc == sc_copy);
Assert.IsFalse(sc == sc2);
Assert.IsTrue(sc.Equals(sc2));
Assert.IsTrue(sc2.Equals(sc));
Assert.IsTrue(sc.Equals(sc_copy));
Assert.AreEqual(sc, sc2);
Assert.AreEqual(sc, sc_copy);
Assert.AreSame(sc, sc_copy);
Assert.AreNotSame(sc, sc2);
Assert.AreNotSame(sc_copy, sc2);
}


