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 CPFTest {
@Test
public void shouldAcceptValidFormattedCPF() {
CPF cpf = new CPF("111.111.111-11");
assertEquals("11111111111", cpf.getNumero());
assertEquals("111.111.111-11", cpf.getNumeroFormatado());
}
@Test
public void shouldAcceptValidUnformattedCPF() {
CPF cpf = new CPF("11144477735");
assertEquals("11144477735", cpf.getNumero());
assertEquals("111.444.777-35", cpf.getNumeroFormatado());
}
@Test
public void shouldAcceptInvalidCPF() {
CPF cpf = new CPF("843.843.131-84");
assertEquals("84384313184", cpf.getNumero());
cpf = new CPF("111.111.1a1-11");
assertEquals("111.111.1a1-11", cpf.getNumero());
assertEquals("111.111.1a1-11", cpf.getNumeroFormatado());
cpf = new CPF("111.1111.111-11");
assertEquals("111.1111.111-11", cpf.getNumero());
assertEquals("111.1111.111-11", cpf.getNumeroFormatado());
cpf = new CPF("111.1.111-11");
assertEquals("111.1.111-11", cpf.getNumero());
assertEquals("111.1.111-11", cpf.getNumeroFormatado());
}
@Test
public void shouldReturnIfIsValid() throws Exception {
CPF cpfValido = new CPF("111.444.777-35");
CPF cpfInvalido = new CPF("843.843.131-85");
assertTrue(cpfValido.isValido());
assertFalse(cpfInvalido.isValido());
}
@Test
public void shouldHaveDomainDrivenEquals() {
CPF a = new CPF("333.333.333-33");
CPF b = new CPF("333.333.333-33");
assertTrue(a.equals(b));
assertTrue(b.equals(a));
}
}