Как смоделировать метод, имеющий параметр Func и Generic - PullRequest
0 голосов
/ 07 октября 2019

Как мне смоделировать такой метод, используя 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.

Но, это не работает, никаких ошибок или предупреждений компилятора не появилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...