Tengo un repositorio con un método Add que se lleva a un IEnumerable como parámetro:verificar el método ha sido llamado con IEnumerable que contiene elementos de 'x' con Moq
public void Add<T>(T item) where T : class, new(){}
En un unittest Quiero comprobar que este método es llama con un IEnumerable que contiene exactamente la misma cantidad de elementos como otro IEnumerable
[Test]
public void InvoicesAreGeneratedForAllStudents()
{
var students = StudentStub.GetStudents();
session.Setup(x => x.All<Student>()).Returns(students.AsQueryable());
service.GenerateInvoices(Payments.Jaar, DateTime.Now);
session.Verify(x => x.Add(It.Is<IEnumerable<Invoice>>(
invoices => invoices.Count() == students.Count())));
}
el resultado de la prueba de unidad:
Moq.MockException :
Expected invocation on the mock at least once, but was never performed:
x => x.Add<Invoice>(It.Is<IEnumerable`1>(i => i.Count<Invoice>() == 10))
No setups configured.
¿Qué estoy haciendo mal?