@Test public void testInvalidBoleto() { String boleto = "00190000090302122300740963035171576320000010111"; assertFalse(service.validate(boleto)); }
@Override public boolean validate(String boleto) { boleto = SEPARATORS.matcher(boleto).replaceAll(""); if (isRepeated(boleto)) return false; int digito1 = calcBoletoDigit(boleto.substring(0, 9)); int digito2 = calcBoletoDigit(boleto.substring(10, 20)); int digito3 = calcBoletoDigit(boleto.substring(21, 31)); int digito4 = calcDigit(boleto.substring(0, 4) + boleto.substring(33, 47) + boleto.substring(4, 9) + boleto.substring(10, 11) + boleto.substring(11, 20) + boleto.substring(21, 31), WEIGHTS); return boleto.equalsIgnoreCase(boleto.substring(0, 9) + digito1 + boleto.substring(10, 20) + digito2 + boleto.substring(21, 31) + digito3 + (digito4 == 0 ? 1 : digito4) + boleto.substring(33, 47)); }
BoletoRegexValidatorService extends AbstractDocRegexValidatorService { @Override public boolean validate(String boleto) { boleto = SEPARATORS.matcher(boleto).replaceAll(""); if (isRepeated(boleto)) return false; int digito1 = calcBoletoDigit(boleto.substring(0, 9)); int digito2 = calcBoletoDigit(boleto.substring(10, 20)); int digito3 = calcBoletoDigit(boleto.substring(21, 31)); int digito4 = calcDigit(boleto.substring(0, 4) + boleto.substring(33, 47) + boleto.substring(4, 9) + boleto.substring(10, 11) + boleto.substring(11, 20) + boleto.substring(21, 31), WEIGHTS); return boleto.equalsIgnoreCase(boleto.substring(0, 9) + digito1 + boleto.substring(10, 20) + digito2 + boleto.substring(21, 31) + digito3 + (digito4 == 0 ? 1 : digito4) + boleto.substring(33, 47)); } }
BoletoRegexValidatorService extends AbstractDocRegexValidatorService { @Override public boolean validate(String boleto) { boleto = SEPARATORS.matcher(boleto).replaceAll(""); if (isRepeated(boleto)) return false; int digito1 = calcBoletoDigit(boleto.substring(0, 9)); int digito2 = calcBoletoDigit(boleto.substring(10, 20)); int digito3 = calcBoletoDigit(boleto.substring(21, 31)); int digito4 = calcDigit(boleto.substring(0, 4) + boleto.substring(33, 47) + boleto.substring(4, 9) + boleto.substring(10, 11) + boleto.substring(11, 20) + boleto.substring(21, 31), WEIGHTS); return boleto.equalsIgnoreCase(boleto.substring(0, 9) + digito1 + boleto.substring(10, 20) + digito2 + boleto.substring(21, 31) + digito3 + (digito4 == 0 ? 1 : digito4) + boleto.substring(33, 47)); }  }
BoletoRegexValidatorService extends AbstractDocRegexValidatorService { @Override public boolean validate(String boleto) { boleto = SEPARATORS.matcher(boleto).replaceAll(""); if (isRepeated(boleto)) return false; int digito1 = calcBoletoDigit(boleto.substring(0, 9)); int digito2 = calcBoletoDigit(boleto.substring(10, 20)); int digito3 = calcBoletoDigit(boleto.substring(21, 31)); int digito4 = calcDigit(boleto.substring(0, 4) + boleto.substring(33, 47) + boleto.substring(4, 9) + boleto.substring(10, 11) + boleto.substring(11, 20) + boleto.substring(21, 31), WEIGHTS); return boleto.equalsIgnoreCase(boleto.substring(0, 9) + digito1 + boleto.substring(10, 20) + digito2 + boleto.substring(21, 31) + digito3 + (digito4 == 0 ? 1 : digito4) + boleto.substring(33, 47)); }  @Override String format(String boleto); @Override boolean validate(String boleto); @Override List<String> getRegexNames(); }
BoletoRegexValidatorService extends AbstractDocRegexValidatorService { @Override public boolean validate(String boleto) { boleto = SEPARATORS.matcher(boleto).replaceAll(""); if (isRepeated(boleto)) return false; int digito1 = calcBoletoDigit(boleto.substring(0, 9)); int digito2 = calcBoletoDigit(boleto.substring(10, 20)); int digito3 = calcBoletoDigit(boleto.substring(21, 31)); int digito4 = calcDigit(boleto.substring(0, 4) + boleto.substring(33, 47) + boleto.substring(4, 9) + boleto.substring(10, 11) + boleto.substring(11, 20) + boleto.substring(21, 31), WEIGHTS); return boleto.equalsIgnoreCase(boleto.substring(0, 9) + digito1 + boleto.substring(10, 20) + digito2 + boleto.substring(21, 31) + digito3 + (digito4 == 0 ? 1 : digito4) + boleto.substring(33, 47)); }  @Override String format(String boleto); @Override boolean validate(String boleto); @Override List<String> getRegexNames();  }