예제 #1
0
        public void Pawn_Move_IllegalCoordinates_Backwards_DoesNotMove()
        {
            // arrange
            var testCases = new[]
            {
                new { color = PieceColor.Black },
                new { color = PieceColor.White }
            };

            foreach (var testCase in testCases)
            {
                var pawn = new Pawn(testCase.color)
                {
                    CoordinateValidator = mockCoordinateValidator.Object
                };
                var coordinate = new Coordinate(6, 3);
                chessBoard.AddPiece(pawn, coordinate);

                var new_coordinate = new Coordinate(6, (testCase.color == PieceColor.Black) ? 4 : 2);

                // act
                pawn.Move(new_coordinate);
            }
        }
예제 #2
0
        public void Move_Successful()
        {
            // arrange
            var chessBoard = new ChessBoard()
            {
                CoordinateValidator = mockCoordinateValidator.Object
            };
            var coordinate1 = new Coordinate(4, 3);
            var coordinate2 = new Coordinate(3, 3);
            var testPiece   = new TestPieceClass(PieceColor.Black);

            chessBoard.AddPiece(testPiece, coordinate1);

            // act
            testPiece.Move(coordinate2);

            // assert
            Assert.AreEqual(null, chessBoard.GetPiece(coordinate1));
            Assert.AreEqual(testPiece, chessBoard.GetPiece(coordinate2));
            Assert.AreEqual(chessBoard, testPiece.ChessBoard);
        }
예제 #3
0
        public void Add_Piece_Valid_Positioning()
        {
            // arrange
            var firstPawn = new Pawn(PieceColor.Black);

            var secondPawn = new Pawn(PieceColor.Black);

            var coordinate1 = new Coordinate(6, 3);
            var coordinate2 = new Coordinate(5, 3);

            // act
            chessBoard.AddPiece(firstPawn, coordinate1);
            chessBoard.AddPiece(secondPawn, coordinate2);

            // assert
            Assert.AreEqual(coordinate1, firstPawn.Coordinate);
            Assert.AreEqual(coordinate2, secondPawn.Coordinate);
            Assert.AreEqual(chessBoard, firstPawn.ChessBoard);
            Assert.AreEqual(chessBoard, firstPawn.ChessBoard);
        }