Exemplo n.º 1
0
        public static void SimpleGame_Test()
        {
            // Setup game
            //setup board
            Board board = new Board();

            Services.Player        = PlayerDb.GetPlayerFromPseudo("Ngo");
            Services.PseudoPlayer2 = "HaloInvitée";

            var player1 = board.PlayersList[0];
            var player2 = board.PlayersList[1];

            Assert.AreEqual(board.PlayersList[0].Pseudo, "Ngo");
            Assert.AreEqual(board.PlayersList[1].Pseudo, "HaloInvitée");

            var mySquares = board.SquaresList;

            Assert.AreEqual(mySquares.Count, 12);
            Assert.AreEqual(board.PlayersList.Count, 2);

            //test player
            for (int i = 1; i <= 5; i++)
            {
                Assert.AreEqual(mySquares[i].PlayerNumber, 1);
                Assert.AreEqual(mySquares[i + 6].PlayerNumber, 2);
            }

            //test number of tokens in each square
            for (int i = 1; i <= 5; i++)
            {
                Assert.AreEqual(mySquares[i].Tokens.Count, 5);
                Assert.AreEqual(mySquares[i + 6].Tokens.Count, 5);
            }
            Assert.AreEqual(mySquares[0].Tokens.Count, 1);
            Assert.AreEqual(mySquares[6].Tokens.Count, 1);

            Assert.That(board.PlayersList[0], Is.Not.Null);
            Assert.That(board.PlayersList[0].Pseudo, Is.Not.Null);
            Assert.AreEqual(board.PlayersList[0].Pool.Count, 0);
            Assert.AreEqual(player2.Pool.Count, 0);

            //expected lists after turns
            var list1 = new List <int> {
                2, 0, 0, 6, 6, 6, 2, 0, 6, 6, 6, 6
            };
            var list2 = new List <int> {
                0, 0, 1, 7, 7, 7, 3, 1, 0, 6, 6, 6
            };
            var list3 = new List <int> {
                0, 0, 5, 3, 10, 2, 6, 2, 3, 1, 0, 9
            };
            var list4 = new List <int> {
                2, 1, 8, 6, 2, 1, 9, 2, 5, 3, 2, 0
            };
            var list5 = new List <int> {
                3, 0, 9, 0, 1, 3, 11, 1, 7, 5, 0, 0
            };
            var list6 = new List <int> {
                4, 1, 10, 0, 0, 3, 11, 1, 7, 0, 1, 1
            };
            var list7 = new List <int> {
                5, 0, 11, 1, 1, 0, 11, 1, 0, 0, 2, 0
            };
            var list8 = new List <int> {
                0, 0, 0, 1, 1, 0, 11, 0, 1, 0, 0, 0
            };
            var list9 = new List <int> {
                0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0
            };

            //Assert the list of square after turn and the number of tokens in each player's pool
            Turn(board, 1, 1, Direction.RIGHT, list1, 6);

            Turn(board, 2, 8, Direction.LEFT, list2, 2);
            Turn(board, 1, 3, Direction.LEFT, list3, 9);
            Turn(board, 2, 7, Direction.LEFT, list4, 2);
            Turn(board, 1, 4, Direction.RIGHT, list5, 10);

            Turn(board, 2, 9, Direction.RIGHT, list6, 3);
            Turn(board, 1, 5, Direction.LEFT, list7, 17);

            Turn(board, 2, 7, Direction.RIGHT, list8, 21);

            Turn(board, 1, 3, Direction.RIGHT, list9, 29);

            //END OF GAME: Assert the score of each player
            Assert.AreEqual(player1.Score, 33);
            Assert.AreEqual(player2.Score, 25);

            board.GetResult();

            //check score
            Assert.AreEqual(player1.Score, 35);
            Assert.AreEqual(player2.Score, 25);

            // check pool (qty of tokens)
            Assert.AreEqual(player1.Pool.Count, 31);
            Assert.AreEqual(player2.Pool.Count, 21);

            //check result (win/draw/lose)
            Assert.AreEqual(board.GetResult(), Result.WIN);
        }