public void GetLeaderboard_Ties_Ok() { Player.ClearPlayersList(); // Arrange Mock <RandomGenerator> randomTest = new Mock <RandomGenerator>(MockBehavior.Strict); randomTest.Setup(h => h.GetNumber(It.Is <int>(t => t == 3))) .Returns(2); ShootController controller = new ShootController(randomTest.Object); controller.Get("rock", "Jane"); controller.Get("rock", "Evgeniya"); controller.Get("rock", "Evgeniya"); controller.Get("scissors", "Jane"); controller.Get("paper", "Evgeniya"); LeaderboardController leadController = new LeaderboardController(); // Act var actionResult = leadController.Get(); var objectResult = actionResult.Result as ObjectResult; var list = new List <PlayerInfo>() { new PlayerInfo { PlayerName = "Evgeniya", Score = 2 }, new PlayerInfo { PlayerName = "Jane", Score = 1 } }; var listResult = objectResult.Value as List <PlayerInfo>; //Assert Assert.IsNotNull(objectResult); Assert.AreEqual(200, objectResult.StatusCode); Assert.AreEqual(2, listResult.Count); Assert.AreEqual("Evgeniya", listResult[0].PlayerName); Assert.AreEqual(2, listResult[0].Score); Assert.AreEqual("Jane", listResult[1].PlayerName); Assert.AreEqual(1, listResult[1].Score); randomTest.VerifyAll(); }
public void GetShoot_IncorrectPlay_BadRequest() { // Arrange Mock <RandomGenerator> randomTest = new Mock <RandomGenerator>(MockBehavior.Strict); ShootController controller = new ShootController(randomTest.Object); // Act var actionResult = controller.Get("play", "Evgeniya"); var objectResult = actionResult.Result as ObjectResult; var errorMessage = objectResult.Value as ErrorMessage; //Assert Assert.IsNotNull(objectResult); Assert.AreEqual(400, objectResult.StatusCode); Assert.AreEqual("play parameter is invalid", errorMessage.Error); randomTest.VerifyAll(); }
public void GetShoot_Wins_Ok() { // Arrange Mock <RandomGenerator> randomTest = new Mock <RandomGenerator>(MockBehavior.Strict); randomTest.Setup(h => h.GetNumber(It.Is <int>(t => t == 3))) .Returns(2); ShootController controller = new ShootController(randomTest.Object); // Act var actionResult = controller.Get("rock", "Evgeniya"); var objectResult = actionResult.Result as ObjectResult; //Assert Assert.IsNotNull(objectResult); Assert.AreEqual(200, objectResult.StatusCode); Assert.AreEqual("Player Evgeniya wins the round", objectResult.Value); randomTest.VerifyAll(); }