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.formatador.Formatador;
import br.com.concretesolutions.canarinho.sample.BuildConfig;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.fail;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 22)
public class TesteFormatadorCPF {
@Test
public void consegueFormatarCPF() {
// Gerados automaticamente para testes
assertThat(Formatador.CPF.formata("545.586.262-66"), is("545.586.262-66"));
assertThat(Formatador.CPF.formata("54558626266"), is("545.586.262-66"));
assertThat(Formatador.CPF.formata("020.724.833-87"), is("020.724.833-87"));
assertThat(Formatador.CPF.formata("02072483387"), is("020.724.833-87"));
assertThat(Formatador.CPF.formata("188.527.045-31"), is("188.527.045-31"));
assertThat(Formatador.CPF.formata("18852704531"), is("188.527.045-31"));
assertThat(Formatador.CPF.formata("047.486.777-32"), is("047.486.777-32"));
assertThat(Formatador.CPF.formata("04748677732"), is("047.486.777-32"));
assertThrowsFormat("");
assertThrowsFormat("123123");
assertThrowsFormat("123.123.123 -12");
assertThrowsFormat(" 047.486.777-32 ");
}
@Test
public void consegueDesformatarCPF() {
// Gerados automaticamente para testes
assertThat(Formatador.CPF.desformata("545.586.262-66"), is("54558626266"));
assertThat(Formatador.CPF.desformata("54558626266"), is("54558626266"));
assertThat(Formatador.CPF.desformata("020.724.833-87"), is("02072483387"));
assertThat(Formatador.CPF.desformata("02072483387"), is("02072483387"));
assertThat(Formatador.CPF.desformata("188.527.045-31"), is("18852704531"));
assertThat(Formatador.CPF.desformata("18852704531"), is("18852704531"));
assertThat(Formatador.CPF.desformata("047.486.777-32"), is("04748677732"));
assertThat(Formatador.CPF.desformata("04748677732"), is("04748677732"));
assertThrowsDesformat("");
assertThrowsDesformat("123123");
assertThrowsDesformat("123.123.123 -12");
assertThrowsDesformat(" 047.486.777-32 ");
}
@Test
public void consegueDizerSeEstaFormatado() {
// Gerados automaticamente para testes
assertThat(Formatador.CPF.estaFormatado("545.586.262-66"), is(true));
assertThat(Formatador.CPF.estaFormatado("54558626266"), is(false));
assertThat(Formatador.CPF.estaFormatado("020.724.833-87"), is(true));
assertThat(Formatador.CPF.estaFormatado("02072483387"), is(false));
assertThat(Formatador.CPF.estaFormatado("188.527.045-31"), is(true));
assertThat(Formatador.CPF.estaFormatado("18852704531"), is(false));
assertThat(Formatador.CPF.estaFormatado("047.486.777-32"), is(true));
assertThat(Formatador.CPF.estaFormatado("04748677732"), is(false));
assertThat(Formatador.CPF.estaFormatado("047486"), is(false));
assertThat(Formatador.CPF.estaFormatado(""), is(false));
try {
Formatador.CPF.estaFormatado(null);
fail("Should have thrown!!!");
} catch (IllegalArgumentException e) {
}
}
@Test
public void consegueDizerSePodeFormatar() {
// Gerados automaticamente para testes
assertThat(Formatador.CPF.podeSerFormatado("545.586.262-66"), is(false));
assertThat(Formatador.CPF.podeSerFormatado("54558626266"), is(true));
assertThat(Formatador.CPF.podeSerFormatado("020"), is(false));
assertThat(Formatador.CPF.podeSerFormatado(""), is(false));
assertThat(Formatador.CPF.podeSerFormatado(null), is(false));
}
private void assertThrowsFormat(String valor) {
try {
Formatador.CPF.formata(valor);
fail("Should have thrown!!!");
} catch (IllegalArgumentException e) {
}
}
private void assertThrowsDesformat(String valor) {
try {
Formatador.CPF.desformata(valor);
fail("Should have thrown!!!");
} catch (IllegalArgumentException e) {
}
}
}