From f1e4b51bfa1877f19de1579a5ba4b2a952cba25d Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Mon, 10 Feb 2014 10:58:33 -0600 Subject: [PATCH 1/3] may need a bit more practice and help --- train.rb | 10 ++++++++++ train_spec.rb | 29 ++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/train.rb b/train.rb index bc6dbcb..c6984a6 100644 --- a/train.rb +++ b/train.rb @@ -12,4 +12,14 @@ def see_danger_coming! end class Engineer +end + +class MessageBoard + + def slow_down!(engineer) + end + + def confirm_slow_down!(conductor) + end + end \ No newline at end of file diff --git a/train_spec.rb b/train_spec.rb index de4cff5..1522e39 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -1,5 +1,6 @@ require 'rspec' require './train' + describe Conductor do let(:engineer) { Engineer.new } @@ -10,4 +11,30 @@ conductor.see_danger_coming! end -end \ No newline at end of file +end + +describe MessageBoard do + + let(:message_board) { MessageBoard.new } + + it "should receive slow down from conductor" do + message_board.should_receive(:slow_down!) + end + + it "should receive a slow down confirmation from the engineer" do + message_board.should_receive(:confirm_slow_down!) + end +end + +# Your Assignment +# --------------- + +# In most circumstances like this, there's a sort of MessageBoard. Let's create +# the idea of a MessageBoard class that both the engineer and the conductor know +# about. + +# 1. When the conductor sees trouble, the conductor tells the `message_board` to slow down +# 2. When the engineer slows down, the engineer tells the `message_board` `confirm_slow_down` + +# Use whichever mocking tool you liked the best or are interested in. If you +# don't know what to choose, go with RSpec. \ No newline at end of file From 2bb23d059cb2d1a59164b5bdaa0c651b531d6669 Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Mon, 10 Feb 2014 21:03:47 -0600 Subject: [PATCH 2/3] updated specs --- lor | 24 ++++++++++++++++++++++++ train.rb | 6 ++++-- train_spec.rb | 4 ++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 lor diff --git a/lor b/lor new file mode 100644 index 0000000..4155581 --- /dev/null +++ b/lor @@ -0,0 +1,24 @@ +.FF + +Failures: + + 1) MessageBoard should receive slow down from conductor + Failure/Error: conductor.see_danger_coming! + NameError: + undefined local variable or method `conductor' for # + # ./train_spec.rb:22:in `block (2 levels) in ' + + 2) MessageBoard should receive a slow down confirmation from the engineer + Failure/Error: message_board.should_receive(:confirm_slow_down!) + (#).confirm_slow_down!(any args) + expected: 1 time with any arguments + received: 0 times with any arguments + # ./train_spec.rb:26:in `block (2 levels) in ' + +Finished in 0.01176 seconds +3 examples, 2 failures + +Failed examples: + +rspec ./train_spec.rb:20 # MessageBoard should receive slow down from conductor +rspec ./train_spec.rb:25 # MessageBoard should receive a slow down confirmation from the engineer diff --git a/train.rb b/train.rb index c6984a6..42bc247 100644 --- a/train.rb +++ b/train.rb @@ -12,12 +12,14 @@ def see_danger_coming! end class Engineer + + def slow_down! + "Hey, we are slowing down!" + end end class MessageBoard - def slow_down!(engineer) - end def confirm_slow_down!(conductor) end diff --git a/train_spec.rb b/train_spec.rb index 1522e39..dd3f4d2 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -16,13 +16,17 @@ describe MessageBoard do let(:message_board) { MessageBoard.new } + let(:conductor) { Conductor.new(engineer)} + let(:engineer) { Engineer.new } it "should receive slow down from conductor" do message_board.should_receive(:slow_down!) + conductor.see_danger_coming! end it "should receive a slow down confirmation from the engineer" do message_board.should_receive(:confirm_slow_down!) + engineer.should(:slow_down!) end end From 8538aea079dd4eded05a801c07156c4fcc50cc14 Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Tue, 11 Feb 2014 21:48:36 -0600 Subject: [PATCH 3/3] updated tests --- train.rb | 10 ++++++++-- train_spec.rb | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/train.rb b/train.rb index 42bc247..e2bf9f5 100644 --- a/train.rb +++ b/train.rb @@ -14,14 +14,20 @@ def see_danger_coming! class Engineer def slow_down! - "Hey, we are slowing down!" end end class MessageBoard + attr_reader :message_board - def confirm_slow_down!(conductor) + def initialize(message_board) + @message_board = message_board end + def confirm + @message_board.slow_down! + end + + end \ No newline at end of file diff --git a/train_spec.rb b/train_spec.rb index dd3f4d2..fe13fe1 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -15,7 +15,7 @@ describe MessageBoard do - let(:message_board) { MessageBoard.new } + let(:message_board) { MessageBoard.new(engineer) } let(:conductor) { Conductor.new(engineer)} let(:engineer) { Engineer.new } @@ -25,8 +25,8 @@ end it "should receive a slow down confirmation from the engineer" do - message_board.should_receive(:confirm_slow_down!) - engineer.should(:slow_down!) + message_board.confirm.should_receive(:slow_down!) + engineer.should_receive(:slow_down!) end end