public void WhenPreviousMoveIsNullRandomGameMoveGeneratorShouldBeCalledOnce() { // Arrange const GameMove expectedGameMove = GameMove.Paper; var randomMoveGeneratorMock = new Mock <IRandomMoveGenerator>(); randomMoveGeneratorMock.Setup(m => m.GenerateRandomMove()).Returns(expectedGameMove); var tacticalMoveGeneratorMock = new Mock <ITacticalMoveGenerator>(); tacticalMoveGeneratorMock.Setup(m => m.GenerateTacticalMove(It.IsAny <GameMove>())).Returns(GameMove.Rock); var tacticalComputerPlayer = new TacticalComputerPlayer(tacticalMoveGeneratorMock.Object, randomMoveGeneratorMock.Object) { PreviousMove = null }; // Act tacticalComputerPlayer.GetComputerMove(); // Assert randomMoveGeneratorMock.Verify(m => m.GenerateRandomMove(), Times.Once); }
public void WhenPreviousMoveIsNullTacticalGameMoveGeneratorShouldNeverBeCalled() { // Arrange var randomMoveGeneratorMock = new Mock <IRandomMoveGenerator>(); var tacticalMoveGeneratorMock = new Mock <ITacticalMoveGenerator>(); var tacticalComputerPlayer = new TacticalComputerPlayer(tacticalMoveGeneratorMock.Object, randomMoveGeneratorMock.Object) { PreviousMove = null }; // Act tacticalComputerPlayer.GetComputerMove(); // Assert tacticalMoveGeneratorMock.Verify(m => m.GenerateTacticalMove(It.IsAny <GameMove>()), Times.Never); }
public void WhenPreviousMoveIsNotNullRandomGameMoveGeneratorShouldNeverBeCalled() { // Arrange const GameMove previousMove = GameMove.Rock; var randomMoveGeneratorMock = new Mock <IRandomMoveGenerator>(); var tacticalMoveGeneratorMock = new Mock <ITacticalMoveGenerator>(); var tacticalComputerPlayer = new TacticalComputerPlayer(tacticalMoveGeneratorMock.Object, randomMoveGeneratorMock.Object) { PreviousMove = previousMove }; // Act tacticalComputerPlayer.GetComputerMove(); // Assert randomMoveGeneratorMock.Verify(m => m.GenerateRandomMove(), Times.Never); }
public void WhenPreviousMoveIsNotNullTacticalGameMoveGeneratorShouldBeCalledOnceWithTheCorrectPreviousMove() { // Arrange const GameMove previousMove = GameMove.Rock; var randomMoveGeneratorMock = new Mock <IRandomMoveGenerator>(); var tacticalMoveGeneratorMock = new Mock <ITacticalMoveGenerator>(); var tacticalComputerPlayer = new TacticalComputerPlayer(tacticalMoveGeneratorMock.Object, randomMoveGeneratorMock.Object) { PreviousMove = previousMove }; // Act tacticalComputerPlayer.GetComputerMove(); // Assert tacticalMoveGeneratorMock.Verify(m => m.GenerateTacticalMove(It.Is <GameMove>(x => x == previousMove)), Times.Once); }