Esempio n. 1
0
		public void haveWinnerTest()
		{
			string errMsg;
			int boardSize = 3;
			Player player1;
			Board boardTEST;
			BoardWinChecker boardWinCheckerTEST; 

			//on teste la victoire sur chaque ligne
			for(int j = 0;j<boardSize-1;j++)
			{ 
				player1 = new Player("Bob", "O");
				boardTEST = new Board(boardSize);
				boardWinCheckerTEST = new BoardWinChecker(boardTEST);
				for (int i = 1; i <= boardSize; i++)
				{   
					boardTEST.playTurn(boardSize*j + i , player1);
				}
				errMsg = "Erreur : victoire non detectée pour la ligne " + (j + 1);
				Assert.IsTrue(boardWinCheckerTEST.HaveWinner(), errMsg);
			}

			//on teste la victoire sur chaque colonne
			for (int j = 1; j <= boardSize - 1; j++)
			{
				player1 = new Player("Bob", "O");
				boardTEST = new Board(boardSize);
				boardWinCheckerTEST = new BoardWinChecker(boardTEST);
				for (int i = 0; i < boardSize; i++)
				{
					boardTEST.playTurn(boardSize * i + j, player1);
				}
				errMsg = "Erreur : victoire non detectée pour la colonne " + j;
				Assert.IsTrue(boardWinCheckerTEST.HaveWinner(), errMsg);
			}

			//on teste la non victoire sur chaque ligne
			//(on ne remplie pas la dernière cellule de la ligne)
			for (int j = 0; j < boardSize - 1; j++)
			{
				player1 = new Player("Bob", "O");
				boardTEST = new Board(boardSize);
				boardWinCheckerTEST = new BoardWinChecker(boardTEST);
				for (int i = 1; i <= boardSize-1; i++)
				{
					boardTEST.playTurn(boardSize * j + i, player1);
				}
				errMsg = "Erreur : victoire detectée pour la ligne " + (j + 1);
				Assert.IsFalse(boardWinCheckerTEST.HaveWinner(), errMsg);
			}

			//on teste la non victoire sur chaque colonne
			//(on ne remplie pas la dernière cellule de la colonne)
			for (int j = 1; j <= boardSize - 1; j++)
			{
				player1 = new Player("Bob", "O");
				boardTEST = new Board(boardSize);
				boardWinCheckerTEST = new BoardWinChecker(boardTEST);
				for (int i = 0; i < boardSize-1; i++)
				{
					boardTEST.playTurn(boardSize * i + j, player1);
				}
				errMsg = "Erreur : victoire detectée pour la colonne " + j;
				Assert.IsFalse(boardWinCheckerTEST.HaveWinner(), errMsg);
			}

			//on teste la victoire sur la premiere diagonale
			player1 = new Player("Bob", "O");
			boardTEST = new Board(boardSize);
			boardWinCheckerTEST = new BoardWinChecker(boardTEST);
			for (int i = 0; i <= boardSize-1; i++)
			{
				boardTEST.playTurn(boardSize * i + (i + 1), player1);
			}
			//Etat de la grille
			//O
			//   O
			//     O
			errMsg = "Erreur : victoire non detectée pour la premiere diagonale";
			Assert.IsTrue(boardWinCheckerTEST.HaveWinner(), errMsg);

			//on teste la victoire sur la deuxieme diagonale
			player1 = new Player("Bob", "O");
			boardTEST = new Board(boardSize);
			boardWinCheckerTEST = new BoardWinChecker(boardTEST);
			for (int i = 0; i <= boardSize-1; i++)
			{
				boardTEST.playTurn(i*boardSize + boardSize - i, player1);
			}
			//Etat de la grille
			//    O
			//  O
			//O
			errMsg = "Erreur : victoire non detectée pour la premiere diagonale";
			Assert.IsTrue(boardWinCheckerTEST.HaveWinner(), errMsg);

		}//haveWinnerTest()