package br.com.caelum.stella.tinytype; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; public class CNPJTest { @Test public void shouldAcceptValidFormattedCNPJ() { CNPJ cnpj = new CNPJ("23.121.367/0001-69"); assertEquals("23121367000169", cnpj.getNumero()); assertEquals("23.121.367/0001-69", cnpj.getNumeroFormatado()); } @Test public void shouldAcceptValidUnformattedCNPJ() { CNPJ cnpj = new CNPJ("23121367000169"); assertEquals("23121367000169", cnpj.getNumero()); assertEquals("23.121.367/0001-69", cnpj.getNumeroFormatado()); } @Test public void shouldAcceptInvalidCNPJ() throws Exception { CNPJ cnpj = new CNPJ("12.345.678/9012-34"); assertEquals("12345678901234", cnpj.getNumero()); assertEquals("12.345.678/9012-34", cnpj.getNumeroFormatado()); cnpj = new CNPJ("12.3w5.678/9012-34"); assertEquals("12.3w5.678/9012-34", cnpj.getNumero()); assertEquals("12.3w5.678/9012-34", cnpj.getNumeroFormatado()); cnpj = new CNPJ("12.3453.678/9012-34"); assertEquals("12.3453.678/9012-34", cnpj.getNumero()); assertEquals("12.3453.678/9012-34", cnpj.getNumeroFormatado()); cnpj = new CNPJ("12.345.8/9012-34"); assertEquals("12.345.8/9012-34", cnpj.getNumero()); assertEquals("12.345.8/9012-34", cnpj.getNumeroFormatado()); } @Test public void shouldReturnIfIsValid() throws Exception { CNPJ cnpjValido = new CNPJ("23.121.367/0001-69"); CNPJ cnpjInvalido = new CNPJ("12.345.678/9012-34"); assertTrue(cnpjValido.isValid()); assertFalse(cnpjInvalido.isValid()); } @Test public void shouldHaveDomainDrivenEquals() { CNPJ a = new CNPJ("23.121.367/0001-69"); CNPJ b = new CNPJ("23.121.367/0001-69"); assertTrue(a.equals(b)); assertTrue(b.equals(a)); } }