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); }
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); }