public void Compare_Two_Equal_Entites_One_As_SubClass_One_Cast_As_BaseClass_As_Equal() { // Arrange ValueObjectFake2 valueObject1 = new ValueObjectFake2("Ulica 1", "Zagreb", "Croatia"); ValueObjectFake2 valueObject2 = new ValueObjectFake2("Ulica 1", "Zagreb", "Croatia"); ValueObjectFake valueObject22 = valueObject2 as ValueObjectFake; ValueObjectFake valueObject3 = new ValueObjectFake("Ulica 1", "Zagreb"); // Act // Assert Assert.AreEqual(valueObject1, valueObject22, "Two ValueObjects aren't equal."); Assert.AreEqual(valueObject1.GetHashCode(), valueObject22.GetHashCode(), "Two ValueObjects haven't the same hashcodes."); Assert.AreEqual(typeof(ValueObjectFake2), valueObject1.GetUnproxiedType(), "Types are not equal."); Assert.AreEqual(typeof(ValueObjectFake2), valueObject22.GetUnproxiedType(), "Types are not equal."); Assert.AreNotEqual(valueObject1, valueObject3, "Two ValueObjects are equal."); Assert.AreNotEqual(valueObject1.GetHashCode(), valueObject3.GetHashCode(), "Two ValueObjects have the same hashcodes."); Assert.AreEqual(typeof(ValueObjectFake2), valueObject1.GetUnproxiedType(), "Types are not equal."); Assert.AreEqual(typeof(ValueObjectFake), valueObject3.GetUnproxiedType(), "Types are not equal."); }
public void Compare_Two_ValueObjects_Of_Diffrent_Type_Of_Hierarchy_As_NotEqual() { // Arrange ValueObject valueObject1 = new ValueObjectFake("Ulica 1", "Zagreb"); ValueObject valueObject2 = new ValueObjectFake2("Ulica 1", "Zagreb", "Croatia"); // Act // Assert Assert.AreNotEqual(valueObject1, valueObject2, "Two ValueObjects aren't equal."); Assert.AreNotEqual(valueObject1.GetHashCode(), valueObject2.GetHashCode(), "Two ValueObjects have different hashcodes."); }