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<GenericParameterHelper>();
    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

Technorati Tags: ,