Example #1
0
        public void IfWhitePlayerIsNotCheckedAndDoesNotHaveLegalMovesReturnsStalemate()
        {
            var checkDetectorMock = new Mock <ICheckDetector>(MockBehavior.Strict);
            var legalMovementMock = new Mock <ILegalMovement>(MockBehavior.Strict);

            var colorToCheck = ChessColor.White;

            checkDetectorMock
            .Setup(d => d.IsChecked(colorToCheck))
            .Returns(false);

            legalMovementMock
            .Setup(m => m.HasAnyLegalMoves(colorToCheck))
            .Returns(false);

            var detector = new GameFinishedDetector(checkDetectorMock.Object,
                                                    legalMovementMock.Object);

            var result = detector.IsGameFinished(colorToCheck);

            Assert.AreEqual(ChessPlayResult.Stalemate, result);
        }
Example #2
0
        public void IfBlackPlayerIsCheckedAndHasLegalMovesReturnsWhiteChecked()
        {
            var checkDetectorMock = new Mock <ICheckDetector>(MockBehavior.Strict);
            var legalMovementMock = new Mock <ILegalMovement>(MockBehavior.Strict);

            var colorToCheck = ChessColor.Black;

            checkDetectorMock
            .Setup(d => d.IsChecked(colorToCheck))
            .Returns(true);

            legalMovementMock
            .Setup(m => m.HasAnyLegalMoves(colorToCheck))
            .Returns(true);

            var detector = new GameFinishedDetector(checkDetectorMock.Object,
                                                    legalMovementMock.Object);

            var result = detector.IsGameFinished(colorToCheck);

            Assert.AreEqual(ChessPlayResult.BlackChecked, result);
        }