package br.com.concretesolutions.canarinho.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import br.com.concretesolutions.canarinho.sample.BuildConfig;
import br.com.concretesolutions.canarinho.validator.Validador;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 22)
public class TesteValidadores {
@Test
public void consegueValidarCPF() {
// Gerados automaticamente para testes
assertThat(Validador.CPF.ehValido("545.586.262-66"), is(true));
assertThat(Validador.CPF.ehValido("655.274.921-02"), is(true));
assertThat(Validador.CPF.ehValido("020.724.833-87"), is(true));
assertThat(Validador.CPF.ehValido("188.527.045-31"), is(true));
assertThat(Validador.CPF.ehValido("047.486.777-32"), is(true));
assertThat(Validador.CPF.ehValido("54558626266"), is(true));
assertThat(Validador.CPF.ehValido("65527492102"), is(true));
assertThat(Validador.CPF.ehValido("02072483387"), is(true));
assertThat(Validador.CPF.ehValido("18852704531"), is(true));
assertThat(Validador.CPF.ehValido("04748677732"), is(true));
assertThat(Validador.CPF.ehValido("545.111.262-66"), is(false));
assertThat(Validador.CPF.ehValido("655.111.921-02"), is(false));
assertThat(Validador.CPF.ehValido("020.111.833-87"), is(false));
assertThat(Validador.CPF.ehValido("188.111.045-31"), is(false));
assertThat(Validador.CPF.ehValido("047.111.777-32"), is(false));
assertThat(Validador.CPF.ehValido("54111626266"), is(false));
assertThat(Validador.CPF.ehValido("65111492102"), is(false));
assertThat(Validador.CPF.ehValido("02111483387"), is(false));
assertThat(Validador.CPF.ehValido("18111704531"), is(false));
assertThat(Validador.CPF.ehValido("04111677732"), is(false));
}
@Test
public void consegueValidarCNPJ() {
// Gerados automaticamente para testes
assertThat(Validador.CNPJ.ehValido("50.713.534/0001-33"), is(true));
assertThat(Validador.CNPJ.ehValido("77.135.038/0001-04"), is(true));
assertThat(Validador.CNPJ.ehValido("58.613.246/0001-19"), is(true));
assertThat(Validador.CNPJ.ehValido("50713534000133"), is(true));
assertThat(Validador.CNPJ.ehValido("77135038000104"), is(true));
// Gerados automaticamente para testes
assertThat(Validador.CNPJ.ehValido("50.713.111/0001-33"), is(false));
assertThat(Validador.CNPJ.ehValido("77.135.111/0001-04"), is(false));
assertThat(Validador.CNPJ.ehValido("50713531110133"), is(false));
assertThat(Validador.CNPJ.ehValido("77135031110104"), is(false));
}
@Test
public void consegueValidarBoletoNormal() {
// boleto bradesco
assertThat(Validador.BOLETO
.ehValido("23790.12301 60000.000053 25000.456704 9 64680000013580"), is(true));
// boleto bradesco
assertThat(Validador.BOLETO
.ehValido("23790123016000000005325000456704964680000013580"), is(true));
// boleto banco do brasil
assertThat(Validador.BOLETO
.ehValido("00199.38414 90480.002550 84666.970219 4 64290000007726"), is(true));
// Boleto itau desformatado
assertThat(Validador.BOLETO
.ehValido("34191750090000159091820521070001664890002370000"), is(true));
// Boleto itau
assertThat(Validador.BOLETO
.ehValido("34191.75009 00001.590918 20521.070001 6 64890002370000"), is(true));
// boleto Banestes
assertThat(Validador.BOLETO
.ehValido("02190.00015 05000.000017 23452.021696 2 25230000034000"), is(true));
// boleto Caixa
assertThat(Validador.BOLETO
.ehValido("10491.44338 55119.000002 00000.000141 3 25230000093423"), is(true));
// boleto Sudameris
assertThat(Validador.BOLETO
.ehValido("34790.12001 12345.695006 10502.000002 5 25230000034000"), is(true));
}
@Test
public void consegueValidarBoletoTributoSemSerTaxa() {
assertThat(Validador.BOLETO
.ehValido("848600000015 523301622010 506101307129 620012111220"), is(true));
}
@Test
public void consegueValidarBoletoTributoDeTaxa() {
assertThat(Validador.BOLETO
.ehValido("836600000019 078800481000 998854924516 001265611135"), is(true));
assertThat(Validador.BOLETO
.ehValido("826100000007 265400971429 620232390612 725103150621"), is(true));
}
@Test
public void consegueValidarTelefone() {
assertThat(Validador.TELFONE.ehValido("1112345678"), is(true));
assertThat(Validador.TELFONE.ehValido("11123456789"), is(true));
assertThat(Validador.TELFONE.ehValido("(11) 12345-6789"), is(true));
assertThat(Validador.TELFONE.ehValido("111234567890"), is(false));
assertThat(Validador.TELFONE.ehValido("1112345"), is(false));
}
@Test
public void consegueValidarCEP() {
assertThat(Validador.CEP.ehValido("12345678"), is(true));
assertThat(Validador.CEP.ehValido("12345-678"), is(true));
assertThat(Validador.CEP.ehValido("12345-67"), is(false));
assertThat(Validador.CEP.ehValido("1234-678"), is(false));
assertThat(Validador.CEP.ehValido(""), is(false));
}
}