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.5.27 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.26 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.45 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.25 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.23 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.44 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.22 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.43 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.21 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.42 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.20 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.41 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.19 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.40 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.18 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.39 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.17 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.38 test/models/workarea/pricing/override_test.rb
workarea-core-3.5.16 test/models/workarea/pricing/override_test.rb
workarea-core-3.4.37 test/models/workarea/pricing/override_test.rb