public void Fetch_AllScenarios_FuncIsCalled() { //Arrange bool fetchCalled = false; bool fetchAllCalled = false; bool saveCalled = false; Func <int, ITestObject> fetch = x => { fetchCalled = true; return(new Mock <ITestObject>().Object); }; Func <IEnumerable <ITestObject> > fetchAll = () => { fetchAllCalled = true; return(new Mock <IEnumerable <ITestObject> >().Object); }; Action <IEnumerable <ITestObject>, IEnumerable <ITestObject>, IEnumerable <ITestObject> > save = (a, b, c) => { saveCalled = true; }; var mapping = new PicnicCacheMapping <int, ITestObject>(fetch, fetchAll, save); //Act var result = mapping.Fetch(0); //Assert Assert.IsTrue(fetchCalled); Assert.IsFalse(fetchAllCalled); Assert.IsFalse(saveCalled); }