Sha256: 67dc746cf0aa6d59f4aea4ed82775ff4f46609ac47aa4059694fbaea11917038

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 KB

Contents

require 'studio_game/game'

module StudioGame
	describe Game do
		before do
			@game = Game.new("Knuckleheads")

			@initial_health = 100
			@player = Player.new("moe", @initial_health)

			@game.add_player(@player)
		end

		it "increases 15 in health with each high roll" do
			allow_any_instance_of(Die).to receive(:roll).and_return(5)

			@game.play(2)

			expect(@player.health).to eq @initial_health + 15 * 2
		end

		it "skips the player if a medium number is rolled" do
			allow_any_instance_of(Die).to receive(:roll).and_return(3)
			#Die.any_instance.stub(:roll).and_return(3)

			@game.play(2)

			expect(@player.health).to eq @initial_health
		end

		it "decreases 10 in health with each low number rolled" do
			allow_any_instance_of(Die).to receive(:roll).and_return(1)
			#Die.any_instance.stub(:roll).and_return(3)

			@game.play(2)

			expect(@player.health).to eq @initial_health - 10 * 2
		end

		it "assigns a treasure for points during a player's turn" do
			game = Game.new("Knuckleheads")
			player = Player.new("moe")

			game.add_player(player)

			game.play(1)

			#player.points.should_not be_zero

			# or use alternate expectation syntax:
			 expect(player.points).not_to be_zero
		end

		it "computes total points as the sum of all player points" do
			game = Game.new("Knuckleheads")

			player1 = Player.new("moe")
			player2 = Player.new("larry")

			game.add_player(player1)
			game.add_player(player2)

			player1.found_treasure(Treasure.new(:hammer, 50))
			player1.found_treasure(Treasure.new(:hammer, 50))
			player2.found_treasure(Treasure.new(:crowbar, 400))

			game.total_points.should == 500
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
studio_game_20150214-1.0.0 spec/studio_game/game_spec.rb