diff --git a/train.rb b/train.rb index bc6dbcb..b290290 100644 --- a/train.rb +++ b/train.rb @@ -1,15 +1,31 @@ class Conductor - attr_reader :engineer + attr_reader :engineer, :message_board - def initialize(engineer) - @engineer = engineer + def initialize(engineer, message_board) + @engineer = engineer + @message_board = message_board end def see_danger_coming! - engineer.slow_down! + message_board.slow_down end end class Engineer -end \ No newline at end of file + + attr_reader :message_board + + def initialize(message_board) + @message_board = message_board + end + + def slow_down + message_board.confirm_slow_down + end +end + +class MessageBoard + def confirm_slow_down + end +end diff --git a/train_spec.rb b/train_spec.rb index de4cff5..eea898b 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -2,12 +2,24 @@ require './train' describe Conductor do - let(:engineer) { Engineer.new } - let(:conductor) { Conductor.new(engineer)} + let(:engineer) { double } + let(:message_board) { double } + let(:conductor) { Conductor.new(engineer, message_board)} - it "should tell the engineer to slow down" do - engineer.should_receive(:slow_down!) + it "should tell the message board to slow down" do + message_board.should_receive(:slow_down) conductor.see_danger_coming! end - -end \ No newline at end of file +end + +describe Engineer do + + let(:message_board) { double } + let(:engineer) { Engineer.new(message_board) } + + + it "should tell the message board to confirm slow down" do + message_board.should_receive(:confirm_slow_down) + engineer.slow_down + end +end