Quando li o enunciado, acreditava que eu teria que validar a ordem em que foi incluído os lances (decrescente) e não ter que ver o maior e menos valor.
O código proposto pelo instrutor é igual ao Crescente que fizemos anteriormente, o que tem alguma lógica. Mas depois de ver o exercício "deveEncontrarOsTresMaioresLances" e ler o enunciado do exercício em questão pensei em fazer o teste de outra forma.
Enunciado do exercício:
Por fim, teste que o Avaliador funciona para lances dados em ordem decrescente.
Crie Lances com valores de 400, 300, 200, 100, por exemplo, e garanta que a saída bata com os valores da entrada.
Código exibido pelo instrutor:
@Test
public void deveEntenderLeilaoComLancesEmOrdemDecrescente() {
Usuario joao = new Usuario("Joao");
Usuario maria = new Usuario("Maria");
Leilao leilao = new Leilao("Playstation 3 Novo");
leilao.propoe(new Lance(joao,400.0));
leilao.propoe(new Lance(maria,300.0));
leilao.propoe(new Lance(joao,200.0));
leilao.propoe(new Lance(maria,100.0));
Avaliador leiloeiro = new Avaliador();
leiloeiro.avalia(leilao);
assertEquals(400.0, leiloeiro.getMaiorLance(), 0.0001);
assertEquals(100.0, leiloeiro.getMenorLance(), 0.0001);
}
Meu Código:
@Test
public void deveEncontrarOsLancesEmOrdemDecrescente(){
Usuario joao = new Usuario("Joao");
Usuario maria = new Usuario("Maria");
Leilao leilao = new Leilao("Playstation 3 Novo");
leilao.propoe(new Lance(joao,400.0));
leilao.propoe(new Lance(maria,300.0));
leilao.propoe(new Lance(joao,200.0));
leilao.propoe(new Lance(maria,100.0));
Avaliador leiloeiro = new Avaliador();
leiloeiro.avalia(leilao);
List<Lance> lances = leilao.getLances();
assertEquals(4, lances.size());
assertEquals(400.0, lances.get(0).getValor(), 0.0001);
assertEquals(300.0, lances.get(1).getValor(), 0.0001);
assertEquals(200.0, lances.get(2).getValor(), 0.0001);
assertEquals(100.0, lances.get(3).getValor(), 0.0001);
}