PivotalPoker.Controllers.StoryController.Vote C# (CSharp) Method

Vote() private method

private Vote ( int projectId, int storyId, int score ) : System.Web.Mvc.ActionResult
projectId int
storyId int
score int
return System.Web.Mvc.ActionResult
        public ActionResult Vote(int projectId, int storyId, int score)
        {
            var game = _games.Get(projectId, storyId);
            EnsurePlayerExists(game, CurrentUserName);

            var player = game.Players.Single(p => p.Name == CurrentUserName);
            game.Play(new Card { Player = player, Points = score });

            return Status(projectId, storyId);
        }

Usage Example

        public void VoteMayCauseGameConsensus()
        {
            const int points = 0, projectId = 123, storyId = 456;

            var gameRepositoryMock = new Mock<IGameRepository>();
            var gameStarterMock = new Mock<IGameStarter>();

            gameStarterMock.Setup(o => o.Name).Returns("Rumples");

            var returnedScore = -1;
            var game = new Game();
            game.Consensus += score => returnedScore = score;

            var james = new Player { Name = "James" };
            game.AddPlayer(james);
            game.Play(new Card { Player = james, Points = points });

            var rumples = new Player { Name = "Rumples" };
            game.AddPlayer(rumples);

            gameRepositoryMock.Setup(g => g.Get(projectId, storyId)).Returns(game);

            var c = new StoryController(null, gameRepositoryMock.Object, gameStarterMock.Object);
            c.Vote(projectId, storyId, points);

            Assert.That(returnedScore, Is.EqualTo(points));
        }