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(); }); }
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 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 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); }