Oggi sono incappato in uno stranissimo comportamento che non mi spiegavo… stavo scrivendo degli unit test di una collection custom scroccando la classe GenericParameterHelper che è li apposta per quello… e ho scritto una cosa del tipo:
[TestMethod]
public void entityCollection_remove_a_reference_not_in_the_collection_should_return_false()
{
    var target = this.CreateMock();
    target.Add( new GenericParameterHelper() );
    target.Add( new GenericParameterHelper() );
    target.Add( new GenericParameterHelper() );

    var actual = target.Remove( new GenericParameterHelper() );
    actual.ShouldBeFalse();
}

ma il test falliva miseramente e actual era true… la cosa era un po’ inspiegabile se non che ad un certo punto dopo un po’ di sano debug mi è venuto lo schiribizzo di curiosare con il fido Reflector e ho scoper
to che quella maledetta classe di GenericParameterHelper fa l’override del metodo Equals falsando completamente il risultato…
Non ho parole.
.m