public void Post_Game_ReturnsSimulationResults(int NumberOfSimulations, int nrWins) { var simulationResultObj = new SimulationResult() { wins = nrWins, percentageOfWins = (decimal)(nrWins / NumberOfSimulations), losses = NumberOfSimulations - nrWins, NumberOfDoors = 3, }; var mockSimulationService = new Mock <ISimulationService>(); mockSimulationService.Setup(service => service.RunSimulation(It.IsAny <int>(), It.IsAny <Boolean>(), It.IsAny <int>())).Returns(simulationResultObj); var sut = new SimulationController(mockSimulationService.Object); var result = sut.Post(new Game() { NumberOfSimulations = NumberOfSimulations }) as OkObjectResult; Assert.IsInstanceOf <OkObjectResult>(result); var simulationResult = result.Value as SimulationResult; Assert.GreaterOrEqual(simulationResult.wins, nrWins); Assert.GreaterOrEqual(simulationResult.losses, simulationResultObj.losses); Assert.GreaterOrEqual(simulationResult.percentageOfWins, simulationResultObj.percentageOfWins); Assert.AreEqual(simulationResult.NumberOfDoors, simulationResultObj.NumberOfDoors); }
public async void PostSimulation() { var mockLogger = new Mock<ILogger<SimulationController>>(); SimulationController simcon = new SimulationController(mockLogger.Object); var result = await simcon.Post(new web.SimulationRequest() { ChangeDoor = false, ChosenDoor = 0, NumOfSimulations = 10 }); Assert.Equal(10, result.Value.Cars + result.Value.Goats); }
public void Post_NumberOfSimulationsIsZero_Returns400() { var mockSimulationService = new Mock <ISimulationService>(); var sut = new SimulationController(mockSimulationService.Object); var result = sut.Post(new Game() { NumberOfSimulations = 0 }) as BadRequestObjectResult; Assert.IsInstanceOf <BadRequestObjectResult>(result); var simulationResult = result.Value as SimulationResult; Assert.IsNull(simulationResult); }
public void Post_throwsException_Returns500() { var mockSimulationService = new Mock <ISimulationService>(); mockSimulationService.Setup(repo => repo.RunSimulation(It.IsAny <int>(), It.IsAny <Boolean>(), It.IsAny <int>())).Throws(new Exception("Random exception")); var sut = new SimulationController(mockSimulationService.Object); var result = sut.Post(new Game() { NumberOfSimulations = 10 }) as ObjectResult; Assert.AreEqual(result.StatusCode, 500); var simulationResult = result.Value as SimulationResult; Assert.IsNull(simulationResult); }