From ab2a46a7f9e9eaaf7ac8dd7bcb3ab1481fb7963a Mon Sep 17 00:00:00 2001 From: noahpatterson Date: Tue, 3 Dec 2013 22:07:24 -0500 Subject: [PATCH] engineer and conductor talk to messageBoard --- train.rb | 26 ++++++++++++++++++++++++++ train_spec.rb | 23 +++++++++++++++++++++++ train_test.rb | 17 +++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 train.rb create mode 100644 train_spec.rb create mode 100644 train_test.rb diff --git a/train.rb b/train.rb new file mode 100644 index 0000000..7aa4e0d --- /dev/null +++ b/train.rb @@ -0,0 +1,26 @@ +class Conductor + attr_reader :messageBoard + + def initialize(messageBoard) + @messageBoard = messageBoard + end + + def see_danger_coming! + messageBoard.slow_down! + end +end + +class Engineer + attr_reader :messageBoard + + def initialize(messageBoard) + @messageBoard = messageBoard + end + + def slows_down + messageBoard.confirm_slowdown! + end +end + +class MessageBoard +end \ No newline at end of file diff --git a/train_spec.rb b/train_spec.rb new file mode 100644 index 0000000..343d1c2 --- /dev/null +++ b/train_spec.rb @@ -0,0 +1,23 @@ +require 'rspec' +require '../../../spec_helper' +require './train' + +describe Conductor do + let(:messageBoard) {MessageBoard.new} + let(:conductor) {Conductor.new(messageBoard)} + + it "should tell the messageboard to slowdown" do + messageBoard.should_receive(:slow_down!) + conductor.see_danger_coming! + end +end + +describe Engineer do + let(:messageBoard) {MessageBoard.new} + let(:engineer) {Engineer.new(messageBoard)} + + it "should tell the messageBoard slowdown was confirmed" do + messageBoard.should_receive(:confirm_slowdown!) + engineer.slows_down + end +end \ No newline at end of file diff --git a/train_test.rb b/train_test.rb new file mode 100644 index 0000000..e797660 --- /dev/null +++ b/train_test.rb @@ -0,0 +1,17 @@ +require 'minitest/autorun' +require 'minitest/mock' +require './train' + +class ConductorTest < Minitest::Test + + def setup + @engineer = Minitest::Mock.new + @conductor = Conductor.new(@engineer) + end + + def test_tells_engineer_to_slow_down + @engineer.expect(:slow_down!, nil) + @conductor.see_danger_coming! + @engineer.verify + end +end \ No newline at end of file