Create OrderCycleFormApplicator, for interfacing between front-end form and OrderCycle exchanges model.

This commit is contained in:
Rohan Mitchell
2012-11-29 11:40:15 +11:00
parent 243e1ccd93
commit 2c8d313c77
2 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
module OpenFoodWeb
class OrderCycleFormApplicator
def initialize(order_cycle)
@order_cycle = order_cycle
end
def go!
@order_cycle.incoming_exchanges.each do |exchange|
add_exchange(exchange[:enterprise_id], @order_cycle.coordinator_id)
end
end
def add_exchange(sender_id, receiver_id)
@order_cycle.exchanges.create! :sender_id => sender_id, :receiver_id => receiver_id
end
end
end

View File

@@ -0,0 +1,18 @@
require 'open_food_web/order_cycle_form_applicator'
module OpenFoodWeb
describe OrderCycleFormApplicator do
it "creates new exchanges for incoming_exchanges" do
coordinator_id = 123
supplier_id = 456
oc = double(:order_cycle, :coordinator_id => coordinator_id, :incoming_exchanges => [{:enterprise_id => supplier_id}])
applicator = OrderCycleFormApplicator.new(oc)
applicator.should_receive(:add_exchange).with(supplier_id, coordinator_id)
applicator.go!
end
end
end