diff --git a/app/models/spree/line_item_decorator.rb b/app/models/spree/line_item_decorator.rb new file mode 100644 index 0000000000..507e4e1a55 --- /dev/null +++ b/app/models/spree/line_item_decorator.rb @@ -0,0 +1,5 @@ +Spree::LineItem.class_eval do + def itemwise_shipping_cost + self.product.shipping_cost_for_distributor(self.order.distributor) + end +end diff --git a/spec/models/line_item_spec.rb b/spec/models/line_item_spec.rb new file mode 100644 index 0000000000..96ecea1481 --- /dev/null +++ b/spec/models/line_item_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' + +module Spree + describe LineItem do + it "computes shipping cost for its product" do + distributor = double(:distributor) + order = double(:order, :distributor => distributor) + + product = double(:product) + product.should_receive(:shipping_cost_for_distributor).with(distributor).and_return(10) + + subject.stub(:order).and_return(order) + subject.stub(:product).and_return(product) + + subject.itemwise_shipping_cost.should == 10 + end + end +end