public void JoiningWhenAlreadyInGameThrowsValidationError() { var whitePlayer = PlayerTestHelper.White().Build(); var game = GameTestHelper.PendingInternationalGame(whitePlayer).Build(); Action joinGame = () => game.JoinGame(whitePlayer, _fakeClock.UtcNow()); joinGame.Should().Throw <ManualValidationException>(); }
public void CantMoveWhenGameHasntStarted() { var whitePlayer = PlayerTestHelper.White().Build(); var game = GameTestHelper.PendingMiniGame(whitePlayer).Build(); var gameState = GameState.InitialState(game.Id, game.Settings.BoardSize); Action doMove = () => DoMoveAs(game, gameState, 13, 11, Color.White); doMove.Should().Throw <ManualValidationException>().WithMessage(Game.ERROR_GAME_NOT_ACTIVE); }
public void JoiningAsFirstPlayerJustJoins() { var game = GameTestHelper.PendingInternationalGame().Build(); var whitePlayer = PlayerTestHelper.White().Build(); game.JoinGame(whitePlayer, _fakeClock.UtcNow()); game.Players.Should().OnlyContain(p => p == whitePlayer); game.HasStarted.Should().BeFalse(); game.Turn.Should().BeNull(); }
public void JoiningWhenUserIdOccupiedThrowsValidationError() { var whitePlayer = PlayerTestHelper.White().WithUserId(9999).Build(); var game = GameTestHelper.PendingInternationalGame(whitePlayer).Build(); var blackPlayer = PlayerTestHelper.Black().WithUserId(9999).Build(); Action joinGame = () => game.JoinGame(blackPlayer, _fakeClock.UtcNow()); joinGame.Should().Throw <ManualValidationException>(); }
public void JoiningWhenStartedThrowsValidationError() { var game = GameTestHelper.StartedInternationalGame().Build(); var thirdPlayer = PlayerTestHelper.White() .WithId(IdTestHelper.Next()) .WithUsername("Ender") .Build(); Action joinGame = () => game.JoinGame(thirdPlayer, _fakeClock.UtcNow()); joinGame.Should().Throw <ManualValidationException>(); }
public void JoiningAsSecondPlayerStartsGame() { var blackPlayer = PlayerTestHelper.Black().Build(); var game = GameTestHelper.PendingInternationalGame(blackPlayer).Build(); var whitePlayer = PlayerTestHelper.White().Build(); game.JoinGame(whitePlayer, _fakeClock.UtcNow()); game.Players.Should().BeEquivalentTo(whitePlayer, blackPlayer); game.HasStarted.Should().BeTrue(); game.Turn.Should().NotBeNull(); game.Turn !.Player.Color.Should().Be(Color.White); }