public void ComplexDataStructure2EqualType() { // arrange var t1 = new OtherType() { Id = Guid.Parse("8e6ce36f-3ce4-4d2f-bff8-6e78db373001"), Name = "type_1" }; var t2_1 = new DotNetType() { Id = Guid.Parse("8e6ce36f-3ce4-4d2f-bff8-6e78db373002"), Name = "type_2", Type = typeof(bool) }; var t2_2 = new DotNetType() { Id = Guid.Parse("8e6ce36f-3ce4-4d2f-bff8-6e78db373002"), Name = "type_2", Type = typeof(bool) }; var t3 = new DotNetType() { Id = Guid.Parse("8e6ce36f-3ce4-4d2f-bff8-6e78db373003"), Name = "type_3", Type = typeof(bool) }; var t4 = new DotNetType() { Id = Guid.Parse("8e6ce36f-3ce4-4d2f-bff8-6e78db373004"), Name = "type_4", Type = typeof(int) }; // act & assert Assert.IsTrue(t1.Equals(t1)); Assert.IsFalse(t1.Equals(t2_1)); Assert.IsFalse(t1.Equals(t2_2)); Assert.IsFalse(t1.Equals(t3)); Assert.IsFalse(t1.Equals(t4)); Assert.IsFalse(t2_1.Equals(t1)); Assert.IsTrue(t2_1.Equals(t2_1)); Assert.IsTrue(t2_1.Equals(t2_2)); Assert.IsFalse(t2_1.Equals(t3)); Assert.IsFalse(t2_1.Equals(t4)); Assert.IsFalse(t2_2.Equals(t1)); Assert.IsTrue(t2_2.Equals(t2_1)); Assert.IsTrue(t2_2.Equals(t2_2)); Assert.IsFalse(t2_2.Equals(t3)); Assert.IsFalse(t2_2.Equals(t4)); Assert.IsFalse(t3.Equals(t1)); Assert.IsFalse(t3.Equals(t2_1)); Assert.IsFalse(t3.Equals(t2_2)); Assert.IsTrue(t3.Equals(t3)); Assert.IsFalse(t3.Equals(t4)); Assert.IsFalse(t4.Equals(t1)); Assert.IsFalse(t4.Equals(t2_1)); Assert.IsFalse(t4.Equals(t2_2)); Assert.IsFalse(t4.Equals(t3)); Assert.IsTrue(t4.Equals(t4)); }