It is probably correct that only an Expression
with the exactly same structure (and literal values) will match. I suggest that you use the overload of Returns()
that lets you use the parameters the mock is called with:
repoMock.Setup(moq => moq.FindBy(It.IsAny<Expression<Func<Company, bool>>>())
.Returns((Expression<Func<Company, bool>> predicate) => ...);
In ...
, you can use predicate
to return the matching companies (and maybe even throw an exception if the matching companies isn’t what you expected). Not very pretty, but I think it will work.