class Payment::TestCards attr_accessor :paratika, :test_gateway, :expired, :invalid # CCV or CVV, typo problem def join_path(*args) if defined?(Rails) && defined?(Rails.root) Rails.root.join(*args.prepend("payment")) else File.join(Dir.pwd, *args) end end def initialize paratika_csv = CSV.read(join_path("lib/payment/test_cards/paratika.csv"), headers: true) @paratika = paratika_csv.map do |row| { name: 'John Doe', number: row['Card Number'], month: row['Card Expiry'].split('/')[0], year: row['Card Expiry'].split('/')[1], ccv: row['CVV'] } end test_gateway_csv = CSV.read(join_path("lib/payment/test_cards/test_gateway.csv"), headers: true) @test_gateway = test_gateway_csv.map do |row| { name: 'John Doe', number: row['Card Number'], month: row['Card Expiry'].split('/')[0], year: row['Card Expiry'].split('/')[1], ccv: row['CVV'] } end @invalid = [ { name: 'John Doe', number: '0111111111111111', month: '12', year: '2026', ccv: '000' } ] @expired = [ { name: 'John Doe', number: '4546711234567894', month: '01', year: '2023', ccv: '123' } ] end def self.get(gw) new.send(gw) end end