Moq - Expresión de Linq en el repositorio - Especificar expresión en la configuración
Tengo un método en mi interfaz que se parece a:
T GetSingle(Expression<Func<T, bool>> criteria);
Estoy tratando de burlarme de la configuración de algo como esto (me doy cuenta de que esto no está funcionando):
_mockUserRepository = new Mock<IRepository<User>>();
_mockUserRepository.Setup(c => c.GetSingle(x => x.EmailAddress == "[email protected]"))
.Returns(new User{EmailAddress = "[email protected]"});
Me doy cuenta de que estoy pasando el parámetro equivocado a la configuración.
Despues de leeresta respuesta Puedo hacerlo funcionar al pasar la Expresión, como esto:
_mockUserRepository.Setup(c => c.GetSingle(It.IsAny<Expression<Func<User, bool>>>())
.Returns(new User{EmailAddress = "[email protected]"});
Sin embargo, esto significa que si llamo alGetSingle
Método con cualquier expresión, se devuelve el mismo resultado.
¿Hay alguna forma de especificar en la configuración, qué expresión utilizar?