public void FindMethodTest() { List <TestEntity> data = new List <TestEntity>() { new TestEntity() { ID = 1, Field1 = "111", Field2 = true }, new TestEntity() { ID = 2, Field1 = "222", Field2 = false } }; _fakeCollection.FindAll().Returns(data); _fakeDbWrapper.Execute <TestEntity>(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Func <ICollectionWrapper <TestEntity>, IEnumerable <TestEntity> > >()) .Returns(x => ((Func <ICollectionWrapper <TestEntity>, IEnumerable <TestEntity> >)x[2]).Invoke(_fakeCollection)); IEnumerable <TestEntity> result = _sut.Find(ent => ent.ID == 1); Assert.IsTrue(result.Count() == 1); Assert.AreSame(data[0], result.First()); }