0
respostas

AssertThat nâo esta funcionando

package br.com.caelum.leilao.teste;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItems;
import static org.junit.Assert.assertEquals;
import static org.hamcrest.CoreMatchers.*;

import java.util.List;

import org.junit.Before;
import org.junit.Test;

import br.com.caelum.leilao.builder.CriadorDeLeilao;
import br.com.caelum.leilao.dominio.Leilao;
import br.com.caelum.leilao.dominio.Usuario;
import br.com.caelum.leilao.dominio.Lance;
import br.com.caelum.leilao.servicos.Avaliador;

public class TesteDoAvaliador {

    private Avaliador leiloeiro;
    private Usuario maria;
    private Usuario jose;
    private Usuario joao;

    @Before
    public void criaAvaliador() {
        this.leiloeiro = new Avaliador();
        this.joao = new Usuario("João");
        this.jose = new Usuario("José");
        this.maria = new Usuario("Maria");
    }

    @Test(expected = RuntimeException.class)
    public void naoDeveAvaliarNenhumLeilaoSemLance() {

        Leilao leilao = new CriadorDeLeilao().para("PS4 novo").constroi();
        leiloeiro.avalia(leilao);
    }

    @Test
    public void deveEntenderLaancesEmOrdemCrescente() {

        Leilao leilao = new CriadorDeLeilao().para("PS4 Novo").lance(joao, 300).lance(jose, 400).lance(maria, 500)
                .constroi();

        double maiorEsperado = 500;
        double menorEsperado = 300;

        leiloeiro.avalia(leilao);
        assertEquals(maiorEsperado, leiloeiro.getMaiorLance(), 0.00001);
//        assertEquals(menorEsperado, leiloeiro.getMenorLance(),0.00001);
        assertEquals(400, leiloeiro.getMedia(), 0.00001);

        assertThat(leiloeiro.getMenorLance(), equalTo(300));

    }

    @Test
    public void deveEntenderLeilaoComApenasUmLance() {

        Leilao leilao = new CriadorDeLeilao().para("PS4 Novo").lance(joao, 300).constroi();

        leiloeiro.avalia(leilao);

        assertEquals(300.00, leiloeiro.getMaiorLance(), 0.00001);
        assertEquals(300.00, leiloeiro.getMenorLance(), 0.00001);
    }

    @Test
    public void deveEncontrarOsTresMaioresLances() {

        Leilao leilao = new CriadorDeLeilao().para("PS3 Novo").lance(joao, 300).lance(jose, 400).lance(maria, 500)
                .lance(joao, 600).lance(jose, 700).constroi();

        leiloeiro.avalia(leilao);

        List<Lance> tresMaiores = leiloeiro.getTresMaiores();
        assertEquals(3, tresMaiores.size());
        assertEquals(700, tresMaiores.get(0).getValor(), 0.00001);
        assertEquals(600, tresMaiores.get(1).getValor(), 0.00001);
        assertEquals(500, tresMaiores.get(2).getValor(), 0.00001);

        assertThat(tresMaiores, hasItems(
                new Lance(jose,700),
                new Lance(joao, 600),
                new Lance(maria, 500)
                ));

    }

    @Test
    public void TesteOrdemRandomica() {

        Leilao leilao = new CriadorDeLeilao().para("PS3 Novo").lance(joao, 700).lance(jose, 300).lance(maria, 200)
                .lance(joao, 800).lance(jose, 100).constroi();

        leiloeiro.avalia(leilao);

        assertEquals(800, leiloeiro.getMaiorLance(), 0.0001);
        assertEquals(100, leiloeiro.getMenorLance(), 0.0001);

    }

    @Test
    public void TesteOrdemDecrescente() {

        Leilao leilao = new CriadorDeLeilao().para("PS3 Novo").lance(joao, 700).lance(jose, 600).lance(maria, 500)
                .lance(joao, 400).lance(jose, 300).constroi();
        leiloeiro.avalia(leilao);

        assertEquals(700, leiloeiro.getMaiorLance(), 0.0001);
        assertEquals(300, leiloeiro.getMenorLance(), 0.0001);

    }

}

o assertThat não esta funcionado mesmo depois dos imports

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software