public IbanFormatException(string message, IbanFormatViolation formatViolation, object actual, object expected ) : base(message) { FormatViolation = formatViolation; ActualObject = actual; ExpectedObject = expected; }
/// <summary> /// Validation of IBAN string /// </summary> /// <param name="iban">Iban string</param> /// <param name="validationResult">Validation result</param> /// <returns>True if IBAN string is valid, false if it encounters any problem</returns> public static bool IsValid(string iban, out IbanFormatViolation validationResult) { bool result = false; validationResult = IbanFormatViolation.NO_VIOLATION; if (!string.IsNullOrEmpty(iban)) { if (hasValidCountryCode(iban, out validationResult)) { if (hasValidCheckDigit( iban, out validationResult)) { BBanStructure structure = getBbanStructure( iban ); if (hasValidBbanLength(iban, structure, out validationResult)) { if (hasValidBbanEntries(iban, structure, out validationResult)) { if (hasValidCheckDigitValue(iban, out validationResult)) { result = true; } } } } } } else { validationResult = IbanFormatViolation.IBAN_NOT_EMPTY_OR_NULL; } return result; }
public void IbanIsValidWithCountryCodeAndCheckDigitOnlyShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("CZ48", out validationResult)); }
private static bool hasValidCountryCode(string iban, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; if (iban.Length < _COUNTRY_CODE_LENGTH) { validationResult = IbanFormatViolation.COUNTRY_CODE_TWO_LETTERS; } else { string countryCode = GetCountryCode( iban ); if (!countryCode.Equals( countryCode.ToUpper() ) || !char.IsLetter( iban[0] ) || !char.IsLetter( iban[1] )) { validationResult = IbanFormatViolation.COUNTRY_CODE_UPPER_CASE_LETTERS; } else { CountryCodeEntry countryEntry = CountryCode.GetCountryCode( countryCode ); if (countryEntry == null) { validationResult = IbanFormatViolation.COUNTRY_CODE_EXISTS; } else { BBanStructure structure = Bban.GetStructureForCountry( countryEntry ); if (structure == null) { validationResult = IbanFormatViolation.COUNTRY_CODE_UNSUPPORTED; } } } } return ( validationResult == IbanFormatViolation.NO_VIOLATION ); }
public IbanFormatException(string message, IbanFormatViolation formatViolation, object actual) : base(message) { FormatViolation = formatViolation; ActualObject = actual; }
private static bool hasValidBbanEntryCharacterType(BBanEntry entry, string entryValue, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; switch (entry.CharacterType) { case BBanEntryCharacterType.A: foreach (char c in entryValue.ToCharArray()) { if (!char.IsUpper(c)) { validationResult = IbanFormatViolation.BBAN_ONLY_UPPER_CASE_LETTERS; break; } } break; case BBanEntryCharacterType.C: foreach (char c in entryValue.ToCharArray()) { if (!char.IsLetterOrDigit(c)) { validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS_OR_LETTERS; break; } } break; case BBanEntryCharacterType.N: foreach (char c in entryValue.ToCharArray()) { if (!char.IsDigit(c)) { validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS; break; } } break; } return(validationResult == IbanFormatViolation.NO_VIOLATION); }
public void IbanIsValidWithValidIbanShouldReturnTrue() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsTrue(IbanUtils.IsValid("CZ6508000000192000145399", out validationResult)); }
public void IbanIsValidWithInvalidAccountNumberShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("DE8937040044053201300A", out validationResult)); }
public void IbanIsValidWithInvalidLengthShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("AT621904300", out validationResult)); }
public IbanFormatException(string message, IbanFormatViolation formatViolation) : base(message) { FormatViolation = formatViolation; }
private static bool hasValidBbanEntryCharacterType (BBanEntry entry, string entryValue, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; switch (entry.CharacterType) { case BBanEntryCharacterType.A: foreach (char c in entryValue.ToCharArray()) { if (!char.IsUpper( c )) { validationResult = IbanFormatViolation.BBAN_ONLY_UPPER_CASE_LETTERS; break; } } break; case BBanEntryCharacterType.C: foreach (char c in entryValue.ToCharArray()) { if (!char.IsLetterOrDigit( c )) { validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS_OR_LETTERS; break; } } break; case BBanEntryCharacterType.N: foreach (char c in entryValue.ToCharArray()) { if (!char.IsDigit( c )) { validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS; break; } } break; } return ( validationResult == IbanFormatViolation.NO_VIOLATION ); }
private static bool hasValidBbanEntries(string iban, BBanStructure structure, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; string bban = GetBBan( iban ); int bbanOffset = 0; foreach (BBanEntry entry in structure.Entries) { int entryLength = entry.Length; string entryValue = bban.Substring( bbanOffset, entryLength ); bbanOffset += entryLength; if (!hasValidBbanEntryCharacterType(entry, entryValue, out validationResult)) { break; } } return ( validationResult == IbanFormatViolation.NO_VIOLATION ); }
private static bool hasValidBbanLength(string iban, BBanStructure structure, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; int expectedBbanLength = structure.GetBBanLength(); string bban = GetBBan( iban ); int bbanLength = bban.Length; if (expectedBbanLength != bbanLength) { validationResult = IbanFormatViolation.BBAN_LENGTH; } return ( validationResult == IbanFormatViolation.NO_VIOLATION ); }
private static bool hasValidCheckDigit(string iban, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; if ((iban.Length < ( _COUNTRY_CODE_LENGTH + _CHECK_DIGIT_LENGTH ))) { validationResult = IbanFormatViolation.CHECK_DIGIT_TWO_DIGITS; } else { string checkDigit = GetCheckDigit( iban ); if (!char.IsDigit( checkDigit[0] ) || !char.IsDigit( checkDigit[1] )) { validationResult = IbanFormatViolation.CHECK_DIGIT_ONLY_DIGITS; } } return (validationResult == IbanFormatViolation.NO_VIOLATION); }
public void IbanIsValidWithEmptyCountryCodeShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid(" _6508000000192000145399", out validationResult)); }
public void IbanIsValidWithNonExistingCountryShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("JJ611904300234573201", out validationResult)); }
public IbanFormatException(string message, IbanFormatViolation formatViolation, char invalidCharacter) : base(message) { FormatViolation = formatViolation; InvalidCharacter = invalidCharacter; }
public void IbanIsValidWithInvalidBankCodeShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("AT611C04300234573201", out validationResult)); }
public IbanFormatException(string message, IbanFormatViolation formatViolation, char invalidCharacter, BBanEntryType entryType, object actual) : base(message) { FormatViolation = formatViolation; InvalidCharacter = invalidCharacter; BBanEntryType = entryType; ActualObject = actual; }
public void IbanIsValidWithInvalidNationalCheckDigitShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("IT6010542811101000000123456", out validationResult)); }
public void IbanIsValidWithEmptyIBANShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("", out validationResult)); }
private static bool hasValidBbanEntries(string iban, BBanStructure structure, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; string bban = GetBBan(iban); int bbanOffset = 0; foreach (BBanEntry entry in structure.Entries) { int entryLength = entry.Length; string entryValue = bban.Substring(bbanOffset, entryLength); bbanOffset += entryLength; if (!hasValidBbanEntryCharacterType(entry, entryValue, out validationResult)) { break; } } return(validationResult == IbanFormatViolation.NO_VIOLATION); }
public void IbanIsValidWithOneCharStringShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("A", out validationResult)); }
public IbanFormatException(string message, IbanFormatViolation formatViolation) : base(message) { FormatViolation = formatViolation; }
public void IbanIsValidWithNonDigitCheckDigitShouldReturnFalse() { IbanFormatViolation validationResult = IbanFormatViolation.NO_VIOLATION; Assert.IsFalse(IbanUtils.IsValid("CZ4T", out validationResult)); }
public IbanFormatException(string message, IbanFormatViolation formatViolation, char invalidCharacter) : base(message) { FormatViolation = formatViolation; InvalidCharacter = invalidCharacter; }
private static bool hasValidCheckDigitValue(string iban, out IbanFormatViolation validationResult) { validationResult = IbanFormatViolation.NO_VIOLATION; if (calculateMod( iban ) != 1) { validationResult = IbanFormatViolation.IBAN_INVALID_CHECK_DIGIT_VALUE; } return ( validationResult == IbanFormatViolation.NO_VIOLATION ); }