Zomba de Rinoceronte:Existe alguma maneira de verificar uma restrição na propriedade de uma propriedade de objeto?

StackOverflow https://stackoverflow.com/questions/76584

  •  09-06-2019
  •  | 
  •  

Pergunta

Se eu tiver

class ObjA {
  public ObjB B;
}
class ObjB {
  public bool Val;
}

e

class ObjectToMock {
  public DoSomething(ObjA obj){...}
}

Existe alguma maneira de definir uma expectativa de que não apenas DoSomething será chamado, mas também que obj.B.Val == true?

eu tentei

Expect.Call(delegate { 
    mockObj.DoSomething(null);
}).Constraints(new PropertyIs("B.Val", true));

mas parece falhar, não importa qual seja o valor.

Foi útil?

Solução

Você pode tentar usar Is.Matching() e fornecer uma restrição de predicado (movida para fora da linha para maior clareza):

    Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
    Expect.Call( delegate {mockobj.DoSomething(null);})
           .Constraints( Is.Matching(nestedBValIsTrue));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top