1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.validator.routines.checkdigit; 18 19 20 /** 21 * ISIN Check Digit Test. 22 * 23 * @version $Revision$ 24 * @since Validator 1.4 25 */ 26 public class ISINCheckDigitTest extends AbstractCheckDigitTest { 27 28 /** 29 * Constructor 30 * @param name test name 31 */ 32 public ISINCheckDigitTest(String name) { 33 super(name); 34 } 35 36 /** 37 * Set up routine & valid codes. 38 */ 39 @Override 40 protected void setUp() throws Exception { 41 super.setUp(); 42 routine = ISINCheckDigit.ISIN_CHECK_DIGIT; 43 valid = new String[] {"US0378331005", 44 "BMG8571G1096", 45 "AU0000XVGZA3", 46 "GB0002634946", 47 "FR0004026250", 48 "3133EHHF3", // see VALIDATOR-422 Valid check-digit, but not valid ISIN 49 "DK0009763344", 50 "dk0009763344", // TODO lowercase is currently accepted, but is this valid? 51 "AU0000xvgza3", // lowercase NSIN 52 "EZ0000000003", // Invented; for use in ISINValidatorTest 53 "XS0000000009", // ditto 54 "AA0000000006", // ditto 55 }; 56 invalid = new String[] {"0378#3100"}; 57 } 58 59 private static String invalidCheckDigits[] = 60 {"US037833100O", // proper check digit is '5', see above 61 "BMG8571G109D", // proper check digit is '6', see above 62 "AU0000XVGZAD", // proper check digit is '3', see above 63 "GB000263494I", // proper check digit is '6', see above 64 "FR000402625C", // proper check digit is '0', see above 65 "DK000976334H", // proper check digit is '4', see above 66 }; 67 68 public void testVALIDATOR_345() { 69 for (int i = 0; i < invalidCheckDigits.length; i++) { 70 String invalidCheckDigit = invalidCheckDigits[i]; 71 assertFalse("Should fail: " + invalidCheckDigit, routine.isValid(invalidCheckDigit)); 72 } 73 } 74 }