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 TesteFormatadorCNPJ { @Test public void consegueFormatar() { // Gerados automaticamente para testes assertThat(Formatador.CNPJ.formata("50.713.534/0001-33"), is("50.713.534/0001-33")); assertThat(Formatador.CNPJ.formata("50713534000133"), is("50.713.534/0001-33")); assertThat(Formatador.CNPJ.formata("72.606.598/0001-78"), is("72.606.598/0001-78")); assertThat(Formatador.CNPJ.formata("72606598000178"), is("72.606.598/0001-78")); assertThat(Formatador.CNPJ.formata("23.106.535/0001-47"), is("23.106.535/0001-47")); assertThat(Formatador.CNPJ.formata("23106535000147"), is("23.106.535/0001-47")); assertThrowsFormat(""); assertThrowsFormat("123123"); assertThrowsFormat("23.106.535/0001 - 47"); assertThrowsFormat(" 23.106.535/0001-47 "); } @Test public void consegueDesformatar() { // Gerados automaticamente para testes assertThat(Formatador.CNPJ.desformata("50.713.534/0001-33"), is("50713534000133")); assertThat(Formatador.CNPJ.desformata("50713534000133"), is("50713534000133")); assertThat(Formatador.CNPJ.desformata("72.606.598/0001-78"), is("72606598000178")); assertThat(Formatador.CNPJ.desformata("72606598000178"), is("72606598000178")); assertThat(Formatador.CNPJ.desformata("23.106.535/0001-47"), is("23106535000147")); assertThat(Formatador.CNPJ.desformata("23106535000147"), is("23106535000147")); assertThrowsDesformat(""); assertThrowsDesformat("123123"); assertThrowsDesformat("123.123.123 -12"); assertThrowsDesformat(" 047.486.777-32 "); } @Test public void consegueDizerSeEstaFormatado() { // Gerados automaticamente para testes assertThat(Formatador.CNPJ.estaFormatado("72.606.598/0001-78"), is(true)); assertThat(Formatador.CNPJ.estaFormatado("72606598000178"), is(false)); assertThat(Formatador.CNPJ.estaFormatado("23.106.535/0001-47"), is(true)); assertThat(Formatador.CNPJ.estaFormatado("23106535000147"), is(false)); assertThat(Formatador.CNPJ.estaFormatado("047486"), is(false)); assertThat(Formatador.CNPJ.estaFormatado(""), is(false)); try { Formatador.CNPJ.estaFormatado(null); fail("Should have thrown!!!"); } catch (IllegalArgumentException e) { } } @Test public void consegueDizerSePodeFormatar() { // Gerados automaticamente para testes assertThat(Formatador.CNPJ.podeSerFormatado("23.106.535/0001-47"), is(false)); assertThat(Formatador.CNPJ.podeSerFormatado("23106535000147"), is(true)); assertThat(Formatador.CNPJ.podeSerFormatado("020"), is(false)); assertThat(Formatador.CNPJ.podeSerFormatado(""), is(false)); assertThat(Formatador.CNPJ.podeSerFormatado(null), is(false)); } private void assertThrowsFormat(String valor) { try { Formatador.CNPJ.formata(valor); fail("Deveria ter jogado exceção!!!"); } catch (IllegalArgumentException e) { } } private void assertThrowsDesformat(String valor) { try { Formatador.CNPJ.desformata(valor); fail("Deveria ter jogado exceção!!!"); } catch (IllegalArgumentException e) { } } }