package agilpizza.usuario;

import static org.junit.Assert.*;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import agilpizza.internal.SeleniumTestCase;

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

	@Test(enabled= true)
	public void verificaQueAsInformacoesExibidasSaoAsQueForamEnviadasPeloUsuario() {
		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 verificaQueSemNomeNaoVai(){
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("\"*Nome:\": Um valor é requerido."));
	}
	
	@Test(enabled= true)
	public void verificaQueSemTelefoneNaoVai(){
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("\"*Telefone:\": Um valor é requerido."));
	}
	
	@Test(enabled= true)
	public void verificaQueSemRuaNaoVai(){
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("\"*Rua:\": Um valor é requerido."));
	}
	
	@Test(enabled= true)
	public void verificaQueSemNumeroNaoVai(){
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("\"*Número:\": Um valor é requerido."));
	}
	
	@Test(enabled= true)
	public void verificaNumeroInvalido(){
		sel.type("formAnotarEndereco:nome", "João Alberto Gomes");
		sel.type("formAnotarEndereco:telefone", "1234-1234");
		sel.type("formAnotarEndereco:numero", "abc");
		sel.type("formAnotarEndereco:rua", "Rua do Matão");
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("\"*Número:\": O valor especificado não é um número válido."));
	}
	
	@Test(enabled= true)
	public void verificaTelefoneInvalido(){
		sel.type("formAnotarEndereco:nome", "João Alberto Gomes");
		sel.type("formAnotarEndereco:telefone", "000-1234");
		sel.type("formAnotarEndereco:numero", "3");
		sel.type("formAnotarEndereco:rua", "Rua do Matão");
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("O *Telefone: deve estar no formato ####-####"));
	}

	@Test
	public void verificaCEPInvalido(){
		sel.type("formAnotarEndereco:nome", "João Alberto Gomes");
		sel.type("formAnotarEndereco:telefone", "1234-1234");
		sel.type("formAnotarEndereco:numero", "3");
		sel.type("formAnotarEndereco:rua", "Rua do Matão");
		sel.type("formAnotarEndereco:cep", "05508-0900");
		sel.clickAndWait("formAnotarEndereco:enviarEndereco");
		assertTrue(sel.isTextPresent("O CEP deve estar no formato #####-###"));
	}
	
	
	
	
	
}
