package agilpizza;

import static org.junit.Assert.*;

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

import fit.Summary;

import agilpizza.selenium.SeleniumTestCase;

public class PaginaDeEnderecoTest extends SeleniumTestCase {
	
	private static int fimDoTelefone = 10;

	
	@Before
	public void entrarNaPagina() {
		sel.open("/AgilPizza/index.jsp");
		sel.click("identificacao");
		sel.waitForPageToLoad("30000");
		sel.type("telefone", "454-10" + fimDoTelefone);
		fimDoTelefone += 5;
		sel.click("//input[@value='enviar']");
		sel.waitForPageToLoad("30000");
	}
	
	@Test
	public void testErroSemNada() {
		submetePraErro();
	}

	private void submetePraErro() {
		submete();
		assertTrue(sel.isTextPresent("Nome, CPF, rua, número e bairro são obrigatórios"));
	}

	private void submete() {
		sel.clickAndWait("//input[@value='enviar']");		
	}

	@Test
	public void testErroSemNome() {
		sel.type("cpf", "123");
		sel.type("rua", "Rua dos bobos");
		sel.type("numero", "zero");
		sel.type("bairro", "Das graças");
		submetePraErro();
	}
	
	@Test
	public void testErroSemCPF() {
		sel.type("nome", "Um qualquer");
		sel.type("rua", "Rua dos bobos");
		sel.type("numero", "zero");
		sel.type("bairro", "Das graças");
		submetePraErro();
	}

	@Test
	public void testErroSemRua() {
		sel.type("nome", "Um qualquer");
		sel.type("cpf", "123");
		sel.type("numero", "Qualquer");
		sel.type ("bairro", "Qualquer");
		submetePraErro();
	}
	
	
	@Test
	public void testErroSemNumero() {
		sel.type("nome", "Um qualquer");
		sel.type("cpf", "123");
		sel.type("rua", "gdskjb");
		sel.type("bairro", "fvsdkfjs");
		submetePraErro();
	}
	
	@Test
	public void testErroSemBairro() {
		sel.type("nome", "sdfksjfbs");
		sel.type("cpf", "123");
		sel.type("rua", "fdskfjsdbf");		
		sel.type("numero", "fvdskvjsb");
		submetePraErro();
	}

	@Test
	public void testFuncionando() {
		String 	nome = "Alfredo",
				cpf = "1233426",
				rua = "Dos Bobos",
				numero = "23131",
				bairro = "Sumare",
				complemento = "Ap. 432",
				cep = "3428703";		
		sel.type("nome", nome);
		sel.type("cpf", cpf);
		sel.type("rua", rua);
		sel.type("numero", numero);
		sel.type("bairro", bairro);
		sel.type("complemento", complemento);
		sel.type("cep", cep);
		submete();
		assertTrue(sel.isTextPresent(nome));
		assertTrue(sel.isTextPresent(rua));
		assertTrue(sel.isTextPresent(numero));
		assertTrue(sel.isTextPresent(bairro));
		assertTrue(sel.isTextPresent(complemento));
		assertTrue(sel.isTextPresent(cep));
	}
	
	@Test
	public void testFuncionandoSohComObrigatorias() {
		String 	nome = "Alfredo",
				cpf = "123",
				rua = "Dos Bobos",
				numero = "0",
				bairro = "Sumare";
		sel.type("nome", nome);
		sel.type("cpf", cpf);
		sel.type("rua", rua);
		sel.type("numero", numero);
		sel.type("bairro", bairro);
		submete();
		assertTrue(sel.isTextPresent(nome));
		assertTrue(sel.isTextPresent(rua));
		assertTrue(sel.isTextPresent(numero));
		assertTrue(sel.isTextPresent(bairro));
	}
	
	@Test
	public void testErroSohComObrigatoriasVazias() {
		sel.type("nome", "    ");
		sel.type("cpf", "    ");
		sel.type("rua", "    ");
		sel.type("numero", "    ");
		sel.type("bairro", "    ");
		submetePraErro();
	}
}
