public void Throws_Exception_When_Setting_Current_Player_With_No_Players() { var gameSettings = BuildGameSettings(); var playersFactory = new MockPlayersFactory().CreateStubbedToReturn(new List <IPlayer>()); var initializer = BuildGameInitializer(playersFactory); Action action = () => initializer.Create(gameSettings); action.ShouldThrow <ArgumentException>(); }
public void Creates_New_Game_Setting_Current_Player_To_Be_Last_Player() { var gameSettings = BuildGameSettings(playerStartType: PlayerStartType.LastPlayerFirst); var player1 = new MockPlayer(); var player2 = new MockPlayer(); var playersFactory = new MockPlayersFactory().CreateStubbedToReturn(new List <IPlayer> { player1, player2 }); var initializer = BuildGameInitializer(playersFactory); var game = initializer.Create(gameSettings); game.CurrentPlayer.Should().Be(player2); }
public void Creates_New_Game_With_Players() { var ai = new MockIntelligence(); var gameSettings = BuildGameSettings(); var aiFactory = new MockIntelligenceFactory().CreateStubbedToReturn(ai); var playersFactory = new MockPlayersFactory().CreateStubbedToReturn(new List <IPlayer> { new MockPlayer() }); var initializer = BuildGameInitializer(playersFactory, aiFactory: aiFactory); var game = initializer.Create(gameSettings); game.Should().NotBeNull(); game.Board.Size.Should().Be(3); game.Players.Count().Should().Be(1); playersFactory.VerifyCreatedCalled(gameSettings, ai); }