You can set it up like this:
_mockRepos.Setup(x => x.Single<Page>(It.IsAny<Expression<Func<Page, bool>>>()))//.Returns etc...;
However you are coming up against one of Moq’s shortcomings. You would want to put an actual expression there instead of using It.IsAny
, but Moq doesn’t support setting up methods that take expressions with specific expressions (it’s a difficult feature to implement). The difficulty comes from having to figure out whether two expressions are equivalent.
So in your test you can pass in any Expression<Func<Page,bool>>
and it will pass back whatever you have setup the mock to return. The value of the test is a little diluted.