This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-validator.git
commit 75cdd062743f8bf56bada3f0b97195c7d78dd506 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Fri Dec 27 10:00:36 2024 -0500 Sort members --- .../commons/validator/routines/IBANValidator.java | 48 +++++++++++----------- .../validator/routines/IBANValidatorTest.java | 32 +++++++-------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/apache/commons/validator/routines/IBANValidator.java b/src/main/java/org/apache/commons/validator/routines/IBANValidator.java index f76636b2..405d22be 100644 --- a/src/main/java/org/apache/commons/validator/routines/IBANValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/IBANValidator.java @@ -346,30 +346,6 @@ public class IBANValidator { return validate(code) == IBANValidatorStatus.VALID; } - /** - * Validate an IBAN Code - * - * @param code The value validation is being performed on - * @return {@link IBANValidatorStatus} for validation - * @since 1.10.0 - */ - public IBANValidatorStatus validate(String code) { - final Validator formatValidator = getValidator(code); - if (formatValidator == null) { - return IBANValidatorStatus.UNKNOWN_COUNTRY; - } - - if (code.length() != formatValidator.ibanLength) { - return IBANValidatorStatus.INVALID_LENGTH; - } - - if (!formatValidator.regexValidator.isValid(code)) { - return IBANValidatorStatus.INVALID_PATTERN; - } - - return IBANCheckDigit.IBAN_CHECK_DIGIT.isValid(code) ? IBANValidatorStatus.VALID : IBANValidatorStatus.INVALID_CHECKSUM; - } - /** * Installs a validator. * Will replace any existing entry which has the same countryCode. @@ -406,4 +382,28 @@ public class IBANValidator { } return validatorMap.put(validator.countryCode, validator); } + + /** + * Validate an IBAN Code + * + * @param code The value validation is being performed on + * @return {@link IBANValidatorStatus} for validation + * @since 1.10.0 + */ + public IBANValidatorStatus validate(String code) { + final Validator formatValidator = getValidator(code); + if (formatValidator == null) { + return IBANValidatorStatus.UNKNOWN_COUNTRY; + } + + if (code.length() != formatValidator.ibanLength) { + return IBANValidatorStatus.INVALID_LENGTH; + } + + if (!formatValidator.regexValidator.isValid(code)) { + return IBANValidatorStatus.INVALID_PATTERN; + } + + return IBANCheckDigit.IBAN_CHECK_DIGIT.isValid(code) ? IBANValidatorStatus.VALID : IBANValidatorStatus.INVALID_CHECKSUM; + } } diff --git a/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java b/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java index a748a073..afc1dfba 100644 --- a/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java +++ b/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java @@ -357,6 +357,16 @@ public class IBANValidatorTest { return result; } + public static Stream<Arguments> validateIbanStatuses() { + return Stream.of( + Arguments.of("XX", IBANValidatorStatus.UNKNOWN_COUNTRY), + Arguments.of("AD0101", IBANValidatorStatus.INVALID_LENGTH), + Arguments.of("AD12XX012030200359100100", IBANValidatorStatus.INVALID_PATTERN), + Arguments.of("AD9900012030200359100100", IBANValidatorStatus.INVALID_CHECKSUM), + Arguments.of("AD1200012030200359100100", IBANValidatorStatus.VALID) + ); + } + @ParameterizedTest @MethodSource("ibanRegistrySourceExamples") public void exampleAccountsShouldBeValid(final String countryName, final String example) { @@ -461,6 +471,12 @@ public class IBANValidatorTest { assertTrue(VALIDATOR.isValid(iban), iban); } + @ParameterizedTest + @MethodSource + public void validateIbanStatuses(String iban, IBANValidatorStatus expectedStatus) { + assertEquals(expectedStatus, IBANValidator.getInstance().validate(iban)); + } + @ParameterizedTest @MethodSource("ibanRegistrySource") public void validatorShouldExistWithProperConfiguration(final String countryName, final String countryCode, final List<String> acountyCode, final int ibanLength, final String structure) throws Exception { @@ -480,20 +496,4 @@ public class IBANValidatorTest { } assertTrue(allPatterns.isEmpty(), "Unrecognized patterns: " + allPatterns + " for" + countryInfo); } - - public static Stream<Arguments> validateIbanStatuses() { - return Stream.of( - Arguments.of("XX", IBANValidatorStatus.UNKNOWN_COUNTRY), - Arguments.of("AD0101", IBANValidatorStatus.INVALID_LENGTH), - Arguments.of("AD12XX012030200359100100", IBANValidatorStatus.INVALID_PATTERN), - Arguments.of("AD9900012030200359100100", IBANValidatorStatus.INVALID_CHECKSUM), - Arguments.of("AD1200012030200359100100", IBANValidatorStatus.VALID) - ); - } - - @ParameterizedTest - @MethodSource - public void validateIbanStatuses(String iban, IBANValidatorStatus expectedStatus) { - assertEquals(expectedStatus, IBANValidator.getInstance().validate(iban)); - } }