[
https://issues.apache.org/jira/browse/VALIDATOR-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14261132#comment-14261132
]
Sebb commented on VALIDATOR-344:
--------------------------------
Oops - just noticed that changing the range of check 'digits' causes the
following errors:
ISINCheckDigitTest#testIsValidFalse AssertionFailedError
SedolCheckDigitTest#testIsValidFalse AssertionFailedError
I think this shows that these methods don't handle invalid check digits
properly.
Will Raise JIRAs for those later
> AbstractCheckDigit class does not fully test invalid strings
> ------------------------------------------------------------
>
> Key: VALIDATOR-344
> URL: https://issues.apache.org/jira/browse/VALIDATOR-344
> Project: Commons Validator
> Issue Type: Bug
> Reporter: Sebb
> Attachments: Validator-344-1.patch
>
>
> The AbstractCheckDigit class does not fully test invalid check digits.
> There are several aspects to this:
> 1. the createInvalidCodes method only checks for invalid digits - it does not
> try alphabetics, for example
> 2. the "invalid" String array entries are passed unchanged to both the
> calculate() method - which expects a string without the check digit - and to
> the isValid() method, which expects the string to contain the check digit. As
> a result, only strings which are syntactically invalid will generate an
> Exception and thereby pass the test.
> 3. testMissingCode does not call isInvalid() with a string length of 1. I
> assume the empty string should not have a check digit.
> Case 1) can be (partially) solved by including other printable characters in
> the generated output.
> Case 2) can (I think) be solved by assuming that the string always includes
> the check character, and stripping this off before passing it to calculate().
> If the method does not throw an Exception, then the test must check that the
> calculated character does not agree. It may not be possible to check all
> types of invalid input this way, but at least it should be more robust than
> the current test case. Additional test cases can be added to separately test
> calculate() and isValid() if it proves necessary.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)