@Test
public void deveAtualizarLeiloesEncerrados(){
RepositorioDeLeiloes leilaoDaoMockado = mock(LeilaoDao.class);
when(leilaoDaoMockado.correntes()).thenReturn(listaLeiloesAntigos);
listaLeiloesAntigos.stream().forEachOrdered(Leilao::encerra);
List<Leilao> listaAtualizadaComLeiloesEncerrados = listaLeiloesAntigos.stream().peek(l -> l.isEncerrado())
.collect(Collectors.toList());
listaAtualizadaComLeiloesEncerrados.forEach(l -> leilaoDaoMockado.atualiza(l));
EncerradorDeLeilao encerrador = new EncerradorDeLeilao(leilaoDaoMockado);
encerrador.encerra();
assertEquals(2, encerrador.getTotalEncerrados());
assertTrue(listaAtualizadaComLeiloesEncerrados.get(0).isEncerrado());
assertTrue(listaAtualizadaComLeiloesEncerrados.get(1).isEncerrado());
/*
Não concordo com a resolução do instrutor, pois a sequência esta desordenada já que há um método com nome "encerra"
pertencente a classe "EncerradorDeLeilao.java" e também um método:
public void encerra() { this.encerrado = true; } que pertence a classe Leilao.java
Além de ser uma lista de leilões a condição FOR não segue o ciclo de uma lista, a minha solução foi de
resolver com Java 8, caso tenha uma solução melhor, favor inserir aqui ou enviar para meu e-mail:
tibaestiago@gmail.com
*/
}