Rhino Mocks: Is there any way to verify a constraint on an object property's property?
-
09-06-2019 - |
Question
If I have
class ObjA {
public ObjB B;
}
class ObjB {
public bool Val;
}
and
class ObjectToMock {
public DoSomething(ObjA obj){...}
}
Is there any way to define an expectation that not only will DoSomething get called but that obj.B.Val == true?
I have tried
Expect.Call(delegate {
mockObj.DoSomething(null);
}).Constraints(new PropertyIs("B.Val", true));
but it seems to fail no matter what the value is.
Solution
You can try using Is.Matching() and providing a predicate constraint (moved out-of line for clarity):
Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
Expect.Call( delegate {mockobj.DoSomething(null);})
.Constraints( Is.Matching(nestedBValIsTrue));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow