package agilpizza.usuario;

import static junit.framework.Assert.assertEquals;
import static org.junit.Assert.*;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import agilpizza.controlador.usuario.UsuarioControlador;
import agilpizza.controlador.util.JSFUtil;
import agilpizza.internal.SeleniumTestCase;
import agilpizza.modelo.pizza.Endereco;
import agilpizza.modelo.pizza.Ingrediente;

public class CadastroEnderecoTest extends SeleniumTestCase {
	
	@BeforeMethod
	public void entrarNaPagina() {
		sel.open(CONTEXTO);
		sel.clickAndWait("linkEnderecoParaEntrega");
	}

	@Test(enabled= true)
	public void cadastraPrimeiroUsuario() {
		sel.type("formAnotarEndereco:nome", "João Alberto Gomes");
		sel.type("formAnotarEndereco:telefone", "1234-1234");
		sel.type("formAnotarEndereco:rua", "Rua do Matão");
		sel.type("formAnotarEndereco:numero", "1010");
		sel.type("formAnotarEndereco:complemento", "CEC");
		sel.type("formAnotarEndereco:bairro", "Cidade Universitária");
		sel.type("formAnotarEndereco:cep", "05508-090");
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("João Alberto Gomes"));
		assertTrue(sel.isTextPresent("1234-1234"));
		assertTrue(sel.isTextPresent("Rua do Matão"));
		assertTrue(sel.isTextPresent("1010"));
		assertTrue(sel.isTextPresent("CEC"));
		assertTrue(sel.isTextPresent("Cidade Universitária"));
		assertTrue(sel.isTextPresent("05508-090"));
		assertTrue(sel.isTextPresent("Dinheiro"));
	}
	
	@Test(enabled= true)
	public void TestaUsuarioCadastrado() {
		sel.open(CONTEXTO);
		sel.clickAndWait("linkEnderecoParaEntrega");
		String telefone = "1234-1234";
		Boolean cadastrado; 
		Endereco cliente = new Endereco();
		cliente.telefone = telefone;
		try
		{
		   UsuarioControlador u = (UsuarioControlador)JSFUtil.pegarBean("usuarioControlador");
			if (u.get(cliente.telefone) == null ) 
		    	cadastrado = false;
		    else 
		    	cadastrado = true; 
			assertTrue(cadastrado);
		}
		catch ( Exception e ) {}
	}
	
	@Test(enabled= true)
	public void TestaUsuarioNaoCadastrado() {
		sel.open(CONTEXTO);
		sel.clickAndWait("linkEnderecoParaEntrega");
		String telefone = "9999-1234";
		Boolean cadastrado; 
		Endereco cliente = new Endereco();
		cliente.telefone = telefone;
		try
		{
		   UsuarioControlador u = (UsuarioControlador)JSFUtil.pegarBean("usuarioControlador");
			if (u.get(cliente.telefone) == null ) 
		    	cadastrado = false;
		    else 
		    	cadastrado = true; 
			assertFalse(cadastrado);
		}
		catch ( Exception e ) {}
	}	
	
}
