Sha256: beccee4e525f9fe18854feb034d5ae6a9738d09fc57c46c98d604183f8a14306
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
require File.expand_path(File.dirname(__FILE__) + '/spec_helper') require 'money' require 'money/bank/google_currency_rails_cache' require 'rails' require 'json' MultiJson.engine = :json_gem describe "GoogleCurrency" do before :each do Rails.stub(:cache).and_return(ActiveSupport::Cache::MemoryStore.new) @bank = Money::Bank::GoogleCurrencyRailsCache.new end describe "#get_rate" do it "should use #fetch_rate when rate is unknown" do @bank.should_receive(:fetch_rate).once @bank.get_rate('USD', 'USD') end it "should not use #fetch_rate when rate is known" do @bank.get_rate('USD', 'USD') @bank.should_not_receive(:fetch_rate) @bank.get_rate('USD', 'USD') end it "should return the correct rate" do @bank.get_rate('USD', 'USD').should == 1.0 end it "should store the rate for faster retreival" do @bank.get_rate('USD', 'EUR') @bank.rates.should include('USD_TO_EUR') end it "should handle complex rates" do uri = double('uri') @bank.stub(:build_uri){|from,to| uri } uri.stub(:read) { %q({lhs: "1 Vietnamese dong",rhs: "4.8 \x26#215; 10\x3csup\x3e-5\x3c/sup\x3e U.S. dollars",error: "",icc: true}) } @bank.get_rate('VND', 'USD').should == BigDecimal("0.48215105E1") end end describe "#flush_rates" do it "should empty @rates" do @bank.get_rate('USD', 'EUR') @bank.flush_rates @bank.rates.should == {} end end describe "#flush_rate" do it "should remove a specific rate from @rates" do @bank.get_rate('USD', 'EUR') @bank.get_rate('USD', 'JPY') @bank.flush_rate('USD', 'EUR') @bank.rates.should include('USD_TO_JPY') @bank.rates.should_not include('USD_TO_EUR') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
google_currency_rails_cache-1.0.0 | spec/google_currency_with_json_spec.rb |