package br.com.caelum.stella.validation.ie; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.junit.Test; import org.mockito.Mockito; import br.com.caelum.stella.MessageProducer; import br.com.caelum.stella.validation.InvalidStateException; import br.com.caelum.stella.validation.Validator; import br.com.caelum.stella.validation.error.IEError; public class IEMatoGrossoValidatorTest extends IEValidatorTest { public IEMatoGrossoValidatorTest() { super(wrongCheckDigitString, validUnformattedString, validFormattedString, validValues); } private static final String wrongCheckDigitString = "00132466444"; // Este validador permite de 8 a 10 caracteres!!! private static final String validUnformattedString = "130152579"; private static final String validFormattedString = "0013198872-7"; private static final String[] validValues = { "0013193686-7", "0013193686-7", "0013053551-6", "0013056071-5", "0013076269-5", "0013015257-9", "0013125061-2", "0013146383-7", "0013151173-4", "0013198869-7", "0013198868-9", "0013191575-4", "0013178718-7", "0013191879-6", "0013197541-2", "0013197542-0", "0013197556-0", "0013198333-4", "0013198870-0", "0013198872-7", "0013205160-5", "0013199075-6", "0013199463-8", "0013198871-9", "0013199464-6", "0013210743-0", "0013211337-6", "0013210747-3", "0013236559-6", "0013236558-8", "0013241890-8", "0013246644-9", "0013256554-4", "0013284135-5", "0013286376-6", "0013286372-3", "13335740-6", "13329659-8", "13325238-8", "13321779-5", "13316631-7", "13315986-8", "13314253-1", "13311864-9", "13307025-5", "13306973-7", "13304830-6", "13303486-0", "13294120-1", "13290722-4", "13283924-5", "13281414-5", "13277927-7", "13265692-2", "13263194-6", "13262435-4", "13260274-1", "13249876-6", "13247098-5", "13241159-8", "13227586-4", "130365630-0","130234200-0", "130181544-3", "130181541-9", "130181537-0", "130181535-4", "130181534-6", "130181533-8", "130181532-0", "130181531-1", "130181530-3", "130181529-0", "130181528-1", "130181527-3", "130181526-5", "130181525-7", "130181524-9", "130181523-0", "130181522-2", "130181521-4", "130181520-6", "130181519-2", "130181518-4", "130181517-6", "130181516-8", "0064573571-0", "064573571-0", "64573571-0" }; @Override protected Validator<String> getValidator(MessageProducer messageProducer, boolean isFormatted) { return new IEMatoGrossoValidator(messageProducer, isFormatted); } @Test @Override public void shouldNotValidateIEWithMoreDigitsThanAlowed() { Validator<String> validator = getValidator(messageProducer, false); String value = validUnformattedString + "578"; try { validator.assertValid(value); fail(); } catch (InvalidStateException e) { assertTrue(e.getInvalidMessages().size() == 1); } Mockito.verify(messageProducer, Mockito.times(1)).getMessage(IEError.INVALID_DIGITS); } }