Skip to content

BankValidator business rules

This page captures business rules and caller-visible behavioral constraints enforced by SAIF.clsValidateBank.

BR-001: Constructor retry limit range

Field Value
Statement The constructor replaces the default retry limit only when inLogonRetryAttempts is between 0 and 10, inclusive.
Trigger A caller constructs clsValidateBank and supplies the optional retry-limit argument.
Enforcement New(...) assigns m_LogonAttemptsMax only when inLogonRetryAttempts > -1 And inLogonRetryAttempts < 11.
Outcome Out-of-range values leave the default retry limit of 3 in place.
Confidence Verified
Source Legacy\BankValidator\clsValidateBank.vb

BR-002: Vendor logon retry handling

Field Value
Statement LogonABA, LogonATM, and LogonSSN increment the shared m_LogonAttempts counter and recursively retry until the counter is no longer less than m_LogonAttemptsMax.
Trigger A vendor Logon(...) call throws an exception.
Enforcement Each Logon* catch block compares m_LogonAttempts to m_LogonAttemptsMax, recurses on the helper method while under the limit, and throws ApplicationException after the limit is exhausted.
Outcome The caller either receives a successful vendor logon or an ApplicationException for the relevant service.
Confidence Verified
Source Legacy\BankValidator\clsValidateBank.vb

BR-003: Bank lookup SOAP faults return empty results

Field Value
Statement Bank-detail retrieval methods treat System.Web.Services.Protocols.SoapException as a not-found condition and return empty results.
Trigger GetBankFullDS, GetBankFullXML, or GetBankListXML catches SoapException while calling an ABA bank-detail operation.
Enforcement The SoapException catch blocks assign "" for XML-returning methods and leave the Institutions DataSet empty for GetBankFullDS.
Outcome Callers receive an empty string or empty DataSet instead of a propagated SOAP fault.
Confidence Verified
Source Legacy\BankValidator\clsValidateBank.vb

BR-004: Non-participating banks return unknown ATM status

Field Value
Statement GetATMAccountStatus returns status -1 and description Unknown when the routing number is not an ATM participant.
Trigger ATM.IsParticipant(LogonToken, inRoutingNum) returns False.
Enforcement The Else branch in GetATMAccountStatus assigns statusCode = -1 and outStatusDescription = "Unknown".
Outcome The caller receives an unknown account-status result and no ATM status lookup is attempted.
Confidence Verified
Source Legacy\BankValidator\clsValidateBank.vb

BR-005: ATM participation faults resolve to non-participant

Field Value
Statement IsATMParticipant treats System.Web.Services.Protocols.SoapException from the ATM vendor as a non-participation result rather than propagating the fault.
Trigger ATM.IsParticipant(LogonToken, inRoutingNum) throws SoapException while checking whether a routing number participates in the ATM network.
Enforcement The SoapException catch block in IsATMParticipant assigns isValid = False before the method proceeds to LogoffATM() in Finally.
Outcome The caller receives False instead of a propagated SOAP fault. This differs from BR-004, which governs GetATMAccountStatus and has no equivalent fault handling — an unhandled exception there propagates to the caller.
Confidence Verified
Source Legacy\BankValidator\clsValidateBank.vb

Sources

  • Legacy\BankValidator\clsValidateBank.vb