Sha256: b5ea8bd095a7def0a83e4d1e1551d8425acb255e65c558b52f01f4ee2b681ad0

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

require File.dirname(__FILE__) + '/../spec_helper'

describe TaxRate do

  context 'validation' do
    it { should have_valid_factory(:tax_rate) }
  end

  context "match" do
    let(:rate1) { TaxRate.new }
    let(:rate2) { TaxRate.new }
    let (:address) { mock_model Address }

    before { TaxRate.stub(:all => [rate1, rate2]) }

    it "should be nil if none of the zones include the address" do
      rate1.stub_chain :zone, :include? => false
      rate2.stub_chain :zone, :include? => false
      TaxRate.match(address).should == []
    end
    it "should return a rate if its zone includes the address" do
      rate1.stub_chain :zone, :include? => false
      rate2.stub_chain :zone, :include? => true
      TaxRate.match(address).should == [rate2]
    end
    it "should use the rate with the highest amount in the event of multiple matches" do
      rate1.stub_chain :zone, :include? => true
      rate2.stub_chain :zone, :include? => true
      rate1.stub :amount => 10
      rate2.stub :amount => 5
      TaxRate.match(address).should == [rate1, rate2]
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
MyCommerceapi-1.0.0 core/spec/models/tax_rate_spec.rb
MyCommerce-0.0.3 core/spec/models/tax_rate_spec.rb