package agilpizza.modelo;

import static junit.framework.Assert.*;

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

public class BebidaTest {

	private String nomeDaBebida;

	private double valorDaBebida;

	private Bebida bebida;

	@Before
	public void setUp() {
		nomeDaBebida = "Coca Cola";
		valorDaBebida = 10.5;
		bebida = new Bebida(nomeDaBebida, valorDaBebida);
	}

	@Test
	public void testeBebidaPossuiNome() throws Exception {
		Bebida bebida = new Bebida(nomeDaBebida);
		assertEquals("Bebida deve ter nome especificado.", nomeDaBebida, bebida
				.getNome());
	}

	@Test
	public void testeBebidaPossuiPreco() throws Exception {
		Bebida bebida = new Bebida(nomeDaBebida, valorDaBebida);

		assertEquals("Bebida deve ter preço especificado.", valorDaBebida,
				bebida.getPreco());
	}

	@Test
	public void testaIdNaoTemEspaco() {
		Bebida bebida = new Bebida(nomeDaBebida, valorDaBebida);
		String id = bebida.getId();
		assertTrue("Não deve encontrar espaços no id", id.indexOf(" ") == -1);
	}

	@Test
	public void testaEqualsEHashCode() {
		Bebida outra = new Bebida("Guaraná", 10.5);
		Bebida mesma = new Bebida("Coca Cola", 10.5);
		
		assertTrue(bebida.equals(mesma));
		assertTrue("Deve ter o mesmo hashcode", bebida.hashCode() == mesma.hashCode());
		assertFalse(bebida.equals(outra));
	}
}
