public async Task NewGameWithWinnerOnRow()
        {
            //Assign
            dynamic input = new DynamicDictionary();

            //Act
            CreateGameOutput createGameOutput = await CreateNewGame();

            input.id = createGameOutput.id;
            string firstPlayer = createGameOutput.firstPlayer;

            input.player   = firstPlayer;
            input.position = new
            {
                x = 0,
                y = 0,
            };
            await CallEndpoint <dynamic>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            input.player   = SwitchPlayer(input.player);
            input.position = new
            {
                x = 1,
                y = 0,
            };
            await CallEndpoint <dynamic>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            input.player   = SwitchPlayer(input.player);
            input.position = new
            {
                x = 0,
                y = 1,
            };
            await CallEndpoint <dynamic>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            input.player   = SwitchPlayer(input.player);
            input.position = new
            {
                x = 2,
                y = 0,
            };
            await CallEndpoint <dynamic>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            input.player   = SwitchPlayer(input.player);
            input.position = new
            {
                x = 0,
                y = 2,
            };
            CreateMovementOutput endpointResponse = await CallEndpoint <CreateMovementOutput>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            //Assert
            Assert.IsTrue(String.Equals(firstPlayer, endpointResponse.winner));
            Assert.IsTrue(String.Equals("Partida finalizada", endpointResponse.msg));
        }
        public async Task CreateNewGameReturnsValidIdAndFirstPlayer()
        {
            //Assign
            Guid guid;

            //Act
            CreateGameOutput createGameOutput = await CreateNewGame();

            //Assert
            Assert.IsTrue(Guid.TryParse(createGameOutput.id, out guid));
            Assert.IsTrue(String.Equals(createGameOutput.firstPlayer, "X") || String.Equals(createGameOutput.firstPlayer, "O"));
        }
        public async Task ReturnsErrorOnInvalidPlayer()
        {
            //Assign
            dynamic input = new DynamicDictionary();

            //Act
            CreateGameOutput createGameOutput = await CreateNewGame();

            input.id       = createGameOutput.id;
            input.player   = SwitchPlayer(createGameOutput.firstPlayer);
            input.position = new
            {
                x = 1,
                y = 0,
            };
            dynamic endpointResponse = await CallEndpoint <dynamic>(NEW_MOVEMENT_ENDPOINT, HttpMethod.Post, input.dictionary);

            //Assert
            //Assert.Fail();
        }