From 4f1e4fc223c1565f87b4c5aa52471d26f5b8974f Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 29 Jun 2012 08:46:31 +1000 Subject: [PATCH] Compute itemwise shipping cost for a line item --- app/models/spree/line_item_decorator.rb | 5 +++++ spec/models/line_item_spec.rb | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 app/models/spree/line_item_decorator.rb create mode 100644 spec/models/line_item_spec.rb 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