test/unit/models/bank_transaction_test.rb in xeroizer-float-2.15.3.13 vs test/unit/models/bank_transaction_test.rb in xeroizer-float-2.15.3.14

- old
+ new

@@ -1,22 +1,28 @@ require "test_helper" class BankTransactionTest < Test::Unit::TestCase + include TestHelper include Xeroizer::Record def setup fake_parent = Class.new do attr_accessor :application + def mark_dirty(*args) + end end.new the_line_items = [ LineItem.build({:quantity => 1, :tax_amount => 0.15, :unit_amount => 1.00, :tax_amount => 0.50}, nil), LineItem.build({:quantity => 1, :tax_amount => 0.15, :unit_amount => 1.00, :tax_amount => 0.50}, nil) ] @the_bank_transaction = BankTransaction.new fake_parent @the_bank_transaction.line_items = the_line_items + + @client = Xeroizer::PublicApplication.new(CONSUMER_KEY, CONSUMER_SECRET) + mock_api('BankTransactions') end context "given a bank_transaction with line_amount_types set to \"Exclusive\"" do setup do @the_bank_transaction.line_amount_types = "Exclusive" @@ -41,7 +47,29 @@ end must "calculate the sub_total as the sum of the line_amounts minus the total tax" do assert_equal "1.0", @the_bank_transaction.sub_total.to_s end + end + + context "bank transaction totals" do + + should "large-scale testing from API XML" do + bank_transactions = @client.BankTransaction.all + bank_transactions.each do | bank_transaction | + assert(!!bank_transaction.attributes[:currency_code], "Doesn't have currency code in attributes") + assert(!!bank_transaction.currency_code, "Doesn't have currency code in model") + assert(!!bank_transaction.currency_rate, "Doesn't have currency rate in model") + + + assert_equal(bank_transaction.attributes[:currency_code], bank_transaction.currency_code) + + if bank_transaction.attributes[:currency_rate] + assert_equal(bank_transaction.attributes[:currency_rate], bank_transaction.currency_rate) + else + assert_equal(1.0, bank_transaction.currency_rate) + end + end + end + end end