summaryrefslogtreecommitdiff
path: root/spec/mastermind/game_spec.rb
blob: 22c17165a05da9573f6d827779317600e1f23d60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# game_spec.rb
require File.join(File.dirname(__FILE__), "/../spec_helper")

module Mastermind
	describe Game do
		context "starting up" do
			before(:each) do
				@messenger = mock("messenger").as_null_object
				@game = Game.new(@messenger)
			end
			it "should send a welcome message" do
				@messenger.should_receive(:puts).with("Welcome to Mastermind!")
				@game.start(%w[r c g y])
			end
			it "should prompt for the first guess" do
				@messenger.should_receive(:puts).with("Enter guess:")
				@game.start(%w[r c g y])
			end
		end
		context "marking a guess" do
			context "with all 4 colors correct in the correct places" do
				it "should mark the guess with bbbb" do
					messenger = mock("messenger").as_null_object
					game = Game.new(messenger)
					game.start(%w[r g y c])
					messenger.should_receive(:puts).with("bbbb")
					game.guess(%w[r g y c])
				end
			end
			context "with all 4 colors correct and 2 in the correct places" do
				it "should mark the guess with bbww" do
					messenger = mock("messenger").as_null_object
					game = Game.new(messenger)
					game.start(%w[r g y c])
					messenger.should_receive(:puts).with("bbww")
					game.guess(%w[r g c y])
				end
			end
		end
	end
end