No classe EncerradorDeLeilao eu tive que usar
private RepositorioDeLeiloes dao;
ao invés de
private LeilaoDaoFalso dao;
Desse jeito foi possível bindar o dao no this e os testes funcionaram, ficou assim:
public class EncerradorDeLeilao
{
private RepositorioDeLeiloes dao;
public int total { get; private set; }
public EncerradorDeLeilao(RepositorioDeLeiloes dao)
{
this.dao = dao;
total = 0;
}
public virtual void encerra()
{
//LeilaoDaoFalso dao = new LeilaoDaoFalso();
List<Leilao> todosLeiloesCorrentes = dao.correntes();
foreach (var l in todosLeiloesCorrentes)
{
if (comecouSemanaPassada(l))
{
l.encerra();
total++;
dao.atualiza(l);
}
}
}
private bool comecouSemanaPassada(Leilao leilao)
{
return diasEntre(leilao.data, DateTime.Now) >= 7;
}
private int diasEntre(DateTime inicio, DateTime fim)
{
int dias = (int)(fim - inicio).TotalDays;
return dias;
}
}