Если я сделаю это:
var repository = new Mock<IRepository<Banner>>();
repository.Setup(x => x.Where(banner => banner.Is.AvailableForFrontend())).Returns(list);
«Где» - это метод в моем хранилище, который принимает Func<T, ISpecification<T>
. AvailableForFrontend возвращает реализацию ISpecification, а list - это IEnumberable универсального типа репозитория.
Он компилируется нормально, но я получаю следующую ошибку при запуске моих тестов.
---- System.NotSupportedException : Expression banner => Convert((banner.Is.AvailableForFrontend() & banner.Is.SmallMediaBanner())) is not supported.
Если я использую другую перегрузку Where в репозитории, которая напрямую принимает спецификацию IS, проблем не будет.
Итак, мой вопрос для новичка: я могу заглушить вызов метода с параметром lamdba? Или мне по-другому?