Boa tarde! Eu importei o hamcrest e esses métodos não estão funcionando. Eu acho que não importei de maneira correta, alguém pode me ajudar? Agradeço desde já.
Classe Lance:
package br.com.caelum.leilao.dominio;
public class Lance {
private Usuario usuario;
private double valor;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
long temp;
temp = Double.doubleToLongBits(valor);
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Lance other = (Lance) obj;
if (usuario == null) {
if (other.usuario != null)
return false;
} else if (!usuario.equals(other.usuario))
return false;
if (Double.doubleToLongBits(valor) != Double.doubleToLongBits(other.valor))
return false;
return true;
}
public Lance(Usuario usuario, double valor) {
this.usuario = usuario;
this.valor = valor;
}
public Usuario getUsuario() {
return usuario;
}
public double getValor() {
return valor;
}
}
AvaliadorTest:
package br.com.caelum.leilao.servico;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import br.com.caelum.leilao.dominio.Lance;
import br.com.caelum.leilao.dominio.Leilao;
public class Avaliador {
private double maiorDeTodos = Double.NEGATIVE_INFINITY;
private double menorDeTodos = Double.POSITIVE_INFINITY;
private double media = 0;
private List<Lance> maiores;
public void avalia(Leilao leilao) {
if (leilao.getLances().size() == 0) {
throw new RuntimeException("Não é possível avaliasr um leilão sem lances!");
}
double total = 0;
for (Lance lance : leilao.getLances()) {
if (lance.getValor() > maiorDeTodos)
maiorDeTodos = lance.getValor();
if (lance.getValor() < menorDeTodos)
menorDeTodos = lance.getValor();
total += lance.getValor();
}
pegaOsMaioresNo(leilao);
if (total == 0) {
media = 0;
return;
}
media = total / leilao.getLances().size();
}
private void pegaOsMaioresNo(Leilao leilao) {
maiores = new ArrayList<Lance>(leilao.getLances());
Collections.sort(maiores, new Comparator<Lance>() {
public int compare(Lance o1, Lance o2) {
if (o1.getValor() < o2.getValor())
return 1;
if (o1.getValor() > o2.getValor())
return -1;
return 0;
}
});
maiores = maiores.subList(0, maiores.size() > 3 ? 3 : maiores.size());
}
public List<Lance> getTresMaiores() {
return maiores;
}
public double getMaiorLance() {
return maiorDeTodos;
}
public double getMenorLance() {
return menorDeTodos;
}
public double getMedia() {
return media;
}
}