Sha256: c6229aaa6ffb8de7f8e4d6e49b90d4cdd8156ac8a96331d28d8ce09cd7ce3f80

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

# encoding: utf-8
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
require 'big_money/exchange'

class TestEx < BigMoney::Exchange
  def self.read_rate(from, to)
    BigDecimal.new('2')
  end

  def self.currencies
    BigMoney::Currency.all
  end
end

class TestExchange < Test::Unit::TestCase
  context BigMoney::Exchange do
    setup do
      @aud = BigMoney.currency(:aud)
      @usd = BigMoney.currency(:usd)
    end

    should 'return rate' do
      bd = BigDecimal.new('2')
      assert_equal bd, BigMoney::Exchange.rate(@aud, @usd)
      assert_equal bd, BigMoney::Exchange.rate(:aud, :usd)
      assert_raise(ArgumentError) do
        BigMoney::Exchange.rate(:aud, :fud)
      end
    end

    should 'return equal rate' do
      assert_equal BigDecimal.new('1'), BigMoney::Exchange.rate(:usd, :usd)
      assert_equal BigDecimal.new('1'), BigMoney::Exchange.rate(:usd, :xxx)
      assert_equal BigDecimal.new('1'), BigMoney::Exchange.rate(:xxx, :usd)
    end

    should 'be cacheable' do
      BigMoney::Exchange.cache = {}
      BigMoney::Exchange.rate(:usd, :aud)
      assert_equal BigDecimal.new('2'), BigMoney::Exchange.cache.values.first
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
big_money-1.2.2 test/test_exchange.rb
big_money-1.2.1 test/test_exchange.rb
big_money-1.2.0 test/test_exchange.rb