コード例 #1
0
        public async Task It_Returns_A_409_Conflict_If_The_Game_Is_Already_Full()
        {
            //--arrange
            var newGame = await CreateValidGameForTesting(TestUserName, 1, 0);

            var joinGameResult = new JoinGameRequest(newGame.Id, "some user name");

            //--act
            var exception = Assert.ThrowsAsync <ApiException>(async() => await GamesClient.JoinGame(joinGameResult, TestEnvironmentSettings.BaseApiUrl));

            //--assert
            exception.ResponseStatusCode.ShouldBe(HttpStatusCode.Conflict);
        }
コード例 #2
0
        public async Task It_Returns_A_400_Bad_Request_If_The_User_Has_Already_Joined_The_Game()
        {
            //--arrange
            var newGame = await CreateValidGameForTesting(TestUserName, 2, 0);

            var joinGameResult = new JoinGameRequest(newGame.Id, TestUserName);

            //--act
            var exception = Assert.ThrowsAsync <ApiException>(async() => await GamesClient.JoinGame(joinGameResult, TestEnvironmentSettings.BaseApiUrl));

            //--assert
            exception.ResponseStatusCode.ShouldBe(HttpStatusCode.BadRequest);
        }
コード例 #3
0
        public async Task It_Returns_The_Updated_Player()
        {
            //--arrange
            var newGame = await CreateValidGameForTesting(TestUserName, 2, 0);

            var joinGameRequest = new JoinGameRequest(newGame.Id, TestUserName2);
            //--have another player join so that the game is started
            await GamesClient.JoinGame(joinGameRequest, TestEnvironmentSettings.BaseApiUrl);

            var firstPlayer = newGame.Players[0];

            var skillExpenditureRequest = new SkillExpenditureRequest(firstPlayer.Id);

            skillExpenditureRequest.IncreaseBudding();

            //--act
            var result = await GamesClient.PushSkillExpenditures(newGame.Id, firstPlayer.Id, skillExpenditureRequest, TestEnvironmentSettings.BaseApiUrl);

            //--assert
            result.UpdatedPlayer.MutationPoints.ShouldBe(firstPlayer.MutationPoints - 1);
        }
コード例 #4
0
        public async Task It_Returns_Next_Round_Not_Available_If_Not_All_Players_Have_Pushed_Their_Points()
        {
            //--arrange
            var newGame = await CreateValidGameForTesting(TestUserName, 2, 0);

            var joinGameRequest = new JoinGameRequest(newGame.Id, TestUserName2);
            //--have another player join so that the game is started
            await GamesClient.JoinGame(joinGameRequest, TestEnvironmentSettings.BaseApiUrl);

            var firstPlayer = newGame.Players[0];

            var skillExpenditureRequest = new SkillExpenditureRequest(firstPlayer.Id);

            for (int i = 0; i < firstPlayer.MutationPoints; i++)
            {
                skillExpenditureRequest.IncreaseRegeneration();
            }

            //--act
            var result = await GamesClient.PushSkillExpenditures(newGame.Id, firstPlayer.Id, skillExpenditureRequest, TestEnvironmentSettings.BaseApiUrl);

            //--assert
            result.NextRoundAvailable.ShouldBe(false);
        }