// Use this for initialization IEnumerator Start() { yield return(new WaitForEndOfFrame()); Instance = this; //GameTestHelper.Instance.Log(GameHelper.player.Coins.ToString()); }
private void SeedGameDomain(IReadOnlyList <User> users) { var user = users.Single(u => u.Username == "User"); var mathy = users.Single(u => u.Username == "Mathy"); _unitOfWork.WithGameTransaction(tran => { var player1 = PlayerTestHelper.FromUser(user).WithColor(Color.White).Build(); var game1 = GameTestHelper.PendingInternationalGame(player1).Build(); SaveWithInitialGameState(game1); var player2 = PlayerTestHelper.FromUser(mathy).Build(); var game2 = GameTestHelper.PendingInternationalGame(player2).Build(); SaveWithInitialGameState(game2); var player3 = PlayerTestHelper.FromUser(user).Build(); var game3 = GameTestHelper.PendingGame(GameSettings.EnglishAmerican, player3).Build(); SaveWithInitialGameState(game3); var player4 = PlayerTestHelper.FromUser(mathy).Build(); var game4 = GameTestHelper.PendingGame(GameSettings.Mini, player4).Build(); SaveWithInitialGameState(game4); tran.Commit(); }); }
private (Game game, GameState gameState) BuildGame(string boardString, Color turn, int?captureSequenceFrom = null) { var board = BoardPosition.FromString(boardString); var game = GameTestHelper.StartedMiniGame().WithTurn(turn).Build(); var gameState = GameState.FromStorage(game.Id, boardString, captureSequenceFrom); return(game, gameState); }
public void CantMoveOpponentsPieces() { var game = GameTestHelper.StartedMiniGame().WithTurn(Color.White).Build(); var gameState = GameState.InitialState(game.Id, game.Settings.BoardSize); Action doMove = () => DoMove(game, gameState, 4, 7); doMove.Should().Throw <ManualValidationException>($"You can only move {Color.White} pieces."); }
public void CantMoveWhenNotYourTurn() { var game = GameTestHelper.StartedMiniGame().WithTurn(Color.White).Build(); var gameState = GameState.InitialState(game.Id, game.Settings.BoardSize); Action doMove = () => DoMoveAs(game, gameState, 4, 7, Color.Black); doMove.Should().Throw <ManualValidationException>().WithMessage(Game.ERROR_NOT_YOUR_TURN); }
public void CantMoveWhenGameIsFinished() { var game = GameTestHelper.FinishedMiniGame(Color.White).Build(); var gameState = GameState.FromStorage(game.Id, "000 000 005 000 000 000", game.Settings.BoardSize); Action doMove = () => DoMoveAs(game, gameState, 9, 6, Color.White); doMove.Should().Throw <ManualValidationException>().WithMessage(Game.ERROR_GAME_NOT_ACTIVE); }
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 CantMoveOutsideTheBoard() { var game = GameTestHelper.StartedMiniGame().Build(); var gameState = GameState.InitialState(game.Id, game.Settings.BoardSize); Action toOutside = () => DoMove(game, gameState, 18, 20); Action fromOutside = () => DoMove(game, gameState, 20, 18); toOutside.Should().Throw <ManualValidationException>(GameState.ERROR_INVALID_SQUARES); fromOutside.Should().Throw <ManualValidationException>(GameState.ERROR_INVALID_SQUARES); }
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); }
public void DoMoveAndSwitchTurn() { // |_|4|_|4|_|4| // |4|_|4|_|4|_| // |_|.|_|.|_|.| // |.|_|.|_|.|_| // |_|5|_|5|_|5| // |5|_|5|_|5|_| var game = GameTestHelper.StartedMiniGame().Build(); var gameState = GameState.InitialState(game.Id, game.Settings.BoardSize); DoMove(game, gameState, 13, 11); gameState.Board.ToLongString(" ", "").Should().Be("444 444 000 050 055 555"); gameState.CaptureSequenceFrom.Should().BeNull(); game.Turn !.Player.Color.Should().Be(Color.Black); }