public void ShouldOpen3rdDoor() { var gameStage = new GameStage(); var mockRandomNumber = Substitute.For <IRandomNumberGenerator>(); mockRandomNumber.Generate(0, 2).Returns(1); var doorSelector = new DoorSelector(mockRandomNumber); gameStage.AllDoors[0].Winner = true; gameStage.AllDoors[0].Chosen = true; doorSelector.SetOpenDoor(gameStage.AllDoors); Assert.True(gameStage.AllDoors[2].Open); //third door should be open Assert.False(gameStage.AllDoors[0].Open); //checking that winnning/chosen door should not be open }
public void ShouldChoseDoor3() { var gameStage = new GameStage(); var mockRandomNumber = Substitute.For <IRandomNumberGenerator>(); mockRandomNumber.Generate(1, 3).Returns(2); var doorSelector = new DoorSelector(mockRandomNumber); var changeStrategy = new ChangeStrategy(); gameStage.AllDoors[0].Chosen = true; gameStage.AllDoors[1].Open = true; changeStrategy.ChangeSelection(gameStage.AllDoors); Assert.True(gameStage.AllDoors[2].Chosen); Assert.False(gameStage.AllDoors[0].Chosen); }
public void ShouldChangeDoorChosenToTrue() { var gameStage = new GameStage(); var mockRandomNumber = Substitute.For <IRandomNumberGenerator>(); mockRandomNumber.Generate().Returns(3); var doorSelector = new DoorSelector(mockRandomNumber); //pick a door, check that it's winner = false var thirdDoor = gameStage.AllDoors.Find(door => door.Number == 3); Assert.False(thirdDoor.Chosen); //run the method doorSelector.SetChosenDoor(gameStage.AllDoors); //winner should now be true Assert.True(thirdDoor.Chosen); }