public void Equals_True_WithEqualityComparer_InComplexType() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var lhs = new ComplexPoco { SimplePoco = new SimplePoco { MyString = "1" } }; var rhs = new ComplexPoco { SimplePoco = new SimplePoco { MyString = "xxx" } }; // Act FieldValueEqualityComparer.AddFieldValueEqualityComparer(new SimplePocoEqualityComparer()); var actual = componentUnderTest.Equals(lhs, rhs); // Assert Assert.AreEqual(true, actual); }