Sha256: 69faa5e044781c4a83076f53f0c5f2a297bae6fc89052bb1d9f135ddab06c402

Contents?: true

Size: 817 Bytes

Versions: 16

Compression:

Stored size: 817 Bytes

Contents

require 'spec_helper'


describe Spree::Calculator, :type => :model do

  class SimpleCalculator < Spree::Calculator
    def compute_simple_computable line_item
      'computed'
    end
  end

  class SimpleComputable
  end


  context "with computable" do

    let(:calculator) { SimpleCalculator.new }
    let(:computable) { SimpleComputable.new }

    subject { SimpleCalculator.new.compute computable }

    it 'calls compute method of class type' do
      expect(subject).to eq ( 'computed' )
    end

    context 'computable does not implement right function name' do
      let(:computable) { Spree::LineItem.new }

      it 'raises an error' do
        expect { subject }.to raise_error NotImplementedError, /Please implement \'compute_line_item\(line_item\)\' in your calculator/
      end
    end

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
solidus_core-1.2.3 spec/models/spree/calculator_spec.rb
solidus_core-1.1.4 spec/models/spree/calculator_spec.rb
solidus_core-1.0.7 spec/models/spree/calculator_spec.rb
solidus_core-1.0.6 spec/models/spree/calculator_spec.rb
solidus_core-1.2.2 spec/models/spree/calculator_spec.rb
solidus_core-1.2.1 spec/models/spree/calculator_spec.rb
solidus_core-1.1.3 spec/models/spree/calculator_spec.rb
solidus_core-1.0.5 spec/models/spree/calculator_spec.rb
solidus_core-1.2.0 spec/models/spree/calculator_spec.rb
solidus_core-1.2.0.rc2 spec/models/spree/calculator_spec.rb
solidus_core-1.0.4 spec/models/spree/calculator_spec.rb
solidus_core-1.1.2 spec/models/spree/calculator_spec.rb
solidus_core-1.2.0.rc1 spec/models/spree/calculator_spec.rb
solidus_core-1.2.0.beta1 spec/models/spree/calculator_spec.rb
solidus_core-1.0.3 spec/models/spree/calculator_spec.rb
solidus_core-1.1.1 spec/models/spree/calculator_spec.rb