Как мне смоделировать такой метод, используя C # Moq?
List<T> GetMoviesWithCache<T>(IEnumerable<string> pids, PlayType? playType, Func<List<string>, PlayType?, bool?, IDeviceType, List<T>> getMoviesToCache, bool? requiresPin, bool? returnCompatibleMedias = null, IDeviceType deviceType = null, bool throwExceptionWhenNoMoviesWereFound = true) where T : class;
Суть в том, что метод имеет в качестве параметра Func, который имеет List.
Я попытался:
var moviesFound = new List<Model.ISimpleMovie>
{
new Model.SimpleMovie { ID = 1 },
new Model.SimpleMovie { ID = 3 },
new Model.SimpleMovie { ID = 5 },
new Model.SimpleMovie { ID = 7 }
};
MovieServiceMock
.Setup(_ => _.GetMoviesWithCache(
It.IsAny<IEnumerable<string>>(),
It.IsAny<PlayType?>(),
It.IsAny<Func<List<string>, PlayType?, bool?, IDeviceType, List<Model.ISimpleMovie>>>(),
It.IsAny<bool?>(),
It.IsAny<bool?>(),
It.IsAny<IDeviceType>(),
It.IsAny<bool>()))
.Returns(moviesFound);
Поскольку при запуске этого метода в моем тесте T получается ISimpleMovie.
Но, это не работает, никаких ошибок или предупреждений компилятора не появилось.