package br.com.caelum.stella.formatter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import br.com.caelum.stella.format.CNPJFormatter;
import br.com.caelum.stella.format.Formatter;
public class CNPJFormatterTest {
private Formatter formatter;
@Before
public void before() {
formatter = new CNPJFormatter();
}
@Test
public void testFormat() {
String unfotmatedValue = "26637142000158";
String formatedValue = formatter.format(unfotmatedValue);
assertEquals(formatedValue, "26.637.142/0001-58");
}
@Test
public void testUnformat() {
String fotmatedValue = "26.637.142/0001-58";
String unformatedValue = formatter.unformat(fotmatedValue);
assertEquals(unformatedValue, "26637142000158");
}
@Test
public void testShoudNotThrowExceptionIfAlreadyUnformated() {
String fotmatedValue = "26637142000158";
String unformatedValue = formatter.unformat(fotmatedValue);
assertEquals(unformatedValue, "26637142000158");
}
@Test
public void shouldVerifyIfAValueIsAlreadyFormattedOrNot() throws Exception {
assertTrue(formatter.isFormatted("26.637.142/0001-58"));
assertFalse(formatter.isFormatted("26637142000158"));
assertFalse(formatter.isFormatted("26.7.1x2/00a1-58"));
}
@Test
public void shouldVerifyIfAValueCanBeFormatted() throws Exception {
assertFalse(formatter.canBeFormatted("26.637.142/0001-58"));
assertTrue(formatter.canBeFormatted("26637142000158"));
assertFalse(formatter.canBeFormatted("26.7.1x2/00a1-58"));
}
}