1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
# frozen_string_literal: true
require_relative 'helper'
class TestBankUS < Test::Unit::TestCase
include DeterministicHelper
assert_methods_are_deterministic(
FFaker::BankUS,
:account_number, :routing_number
)
def setup
@tester = FFaker::BankUS
end
def test_account_number
assert_instance_of String, @tester.account_number
assert_match(/\A\d{8}\z/, @tester.account_number(min_digits: 8, max_digits: 8))
assert_match(/\A\d{12}\z/, @tester.account_number(min_digits: 12, max_digits: 12))
end
def test_routing_number
routing_number = @tester.routing_number
assert_match(/\A\d{9}\z/, routing_number)
checksum = (
(7 * (routing_number[0].to_i + routing_number[3].to_i + routing_number[6].to_i)) +
(3 * (routing_number[1].to_i + routing_number[4].to_i + routing_number[7].to_i)) +
(9 * (routing_number[2].to_i + routing_number[5].to_i + routing_number[8].to_i))
)
assert_equal(0, checksum % 10, 'The routing number\'s checksum is not a multiple of ten')
end
end
|