Sha256: 9e09932a4f9c1d0057de6ea8c12685a55cc664e01981f48853bc60575357e964

Contents?: true

Size: 1.78 KB

Versions: 60

Compression:

Stored size: 1.78 KB

Contents

require 'test_helper'

module Workarea
  module Pricing
    class OverrideTest < TestCase
      def test_has_adjustments
        override = Pricing::Override.new(
          item_prices: {
            '1234' => 4.0,
            '5678' => 2.0
          },
          subtotal_adjustment: -12.to_m,
          shipping_adjustment: -3.to_m
        )

        assert(override.has_adjustments?)
        assert(override.adjusts_shipping?)
        assert(override.adjusts_items?)
        assert(override.adjusts_subtotal?)
      end

      def test_adjusts_subtotal
        override = Pricing::Override.new(
          subtotal_adjustment: -12.to_m
        )

        refute(override.adjusts_shipping?)
        refute(override.adjusts_items?)
        assert(override.adjusts_subtotal?)
      end

      def test_adjusts_items
        override = Pricing::Override.new(
          item_prices: {
            '1234' => 4.0,
            '5678' => 2.0
          }
        )

        refute(override.adjusts_shipping?)
        assert(override.adjusts_items?)
        refute(override.adjusts_subtotal?)
      end

      def test_item_price_for_id
        override = Pricing::Override.new(
          item_prices: {
            '1234' => '',
            '5678' => 2.0
          }
        )

        assert_nil(override.item_price_for_id('2222'))
        assert_nil(override.item_price_for_id('1234'))
        assert_equal(2.to_m, override.item_price_for_id('5678'))
      end

      def test_handles_currency_changes
        current_default = Money.default_currency
        aud = Money::Currency.new('AUD')
        Money.default_currency = aud
        override = Pricing::Override.new

        assert_equal(aud, override.subtotal_adjustment.currency)

      ensure
        Money.default_currency = current_default
      end
    end
  end
end

Version data entries

60 entries across 60 versions & 1 rubygems

Version Path
workarea-core-3.4.27 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.4 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.26 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.3 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.25 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.2 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.24 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.1 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.23 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.22 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.0 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.21 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.0.beta.1 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.20 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.19 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.18 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.17 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.16 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.15 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.14 test/models/workarea/pricing/override_test.rb