Esempio n. 1
0
        private static ManageVoteResponseModel CreateManageVoteResponse(Ballot ballot)
        {
            var model = new ManageVoteResponseModel
            {
                BallotManageGuid = ballot.ManageGuid,
                Votes            = new List <VoteResponse>()
            };

            if (ballot.VoterName != null)
            {
                model.VoterName = ballot.VoterName;
            }

            foreach (Vote vote in ballot.Votes)
            {
                var voteResponse = new VoteResponse
                {
                    ChoiceNumber = vote.Choice.PollChoiceNumber,
                    Value        = vote.VoteValue,
                    ChoiceName   = vote.Choice.Name
                };
                model.Votes.Add(voteResponse);
            }

            return(model);
        }
            public void PollWithBallotsWithVotes_ReturnsAll()
            {
                var          manageGuid = new Guid("A76287F6-BC56-421C-9294-A477D1E9C4B3");
                const string voterName  = "Derek";

                const int    optionNumber = 1;
                const string optionName   = "Value?";
                const int    optionValue  = 23;

                IDbSet <Poll> existingPolls = DbSetTestHelper.CreateMockDbSet <Poll>();
                var           poll          = new Poll()
                {
                    ManageId = PollManageGuid
                };

                var ballot = new Ballot()
                {
                    ManageGuid = manageGuid,
                    VoterName  = voterName,
                    TokenGuid  = new Guid("1AC3FABB-A077-4EF3-84DC-62074BA8FDF1")
                };

                var vote = new Vote()
                {
                    Choice = new Choice()
                    {
                        PollChoiceNumber = optionNumber,
                        Name             = optionName
                    },
                    VoteValue = optionValue
                };


                ballot.Votes.Add(vote);
                poll.Ballots.Add(ballot);
                existingPolls.Add(poll);

                IContextFactory       contextFactory = ContextFactoryTestHelper.CreateContextFactory(existingPolls);
                ManageVoterController controller     = CreateManageVoteController(contextFactory);


                List <ManageVoteResponseModel> response = controller.Get(PollManageGuid);


                Assert.AreEqual(1, response.Count);

                ManageVoteResponseModel responseBallot = response[0];

                Assert.AreEqual(manageGuid, responseBallot.BallotManageGuid);
                Assert.AreEqual(voterName, responseBallot.VoterName);
                Assert.AreEqual(1, responseBallot.Votes.Count);

                VoteResponse responseVote = responseBallot.Votes[0];

                Assert.AreEqual(optionName, responseVote.ChoiceName);
                Assert.AreEqual(optionValue, responseVote.Value);
                Assert.AreEqual(optionNumber, responseVote.ChoiceNumber);
            }
            public void MultiplePolls_ReturnsOnlyRequested()
            {
                Guid otherManageGuid = new Guid("35FC553F-2F0E-49E0-A919-802900262046");

                const string expectedVoterName = "Expected Voter";
                const string otherVoterName    = "Someone else voting";



                const string expectedChoiceName   = "SomeChoice";
                const int    expectedChoiceNumber = 3;

                var expectedChoice = new Choice()
                {
                    PollChoiceNumber = expectedChoiceNumber, Name = expectedChoiceName
                };
                const int expectedVoteValue = 42;

                const int otherChoiceNumber = 1;
                var       otherChoice       = new Choice()
                {
                    PollChoiceNumber = otherChoiceNumber, Name = "Some Other Choice"
                };
                const int otherVoteValue = 16;


                IDbSet <Poll> existingPolls = DbSetTestHelper.CreateMockDbSet <Poll>();

                var poll1 = new Poll()
                {
                    ManageId = PollManageGuid,
                    Ballots  = new List <Ballot>()
                    {
                        CreateBallot(expectedVoterName, CreateVote(expectedChoice, expectedVoteValue))
                    }
                };
                var poll2 =
                    new Poll()
                {
                    ManageId = otherManageGuid,
                    Ballots  = new List <Ballot>()
                    {
                        CreateBallot(otherVoterName, CreateVote(otherChoice, otherVoteValue))
                    }
                };

                existingPolls.Add(poll1);
                existingPolls.Add(poll2);


                IContextFactory       contextFactory = ContextFactoryTestHelper.CreateContextFactory(existingPolls);
                ManageVoterController controller     = CreateManageVoteController(contextFactory);


                List <ManageVoteResponseModel> response = controller.Get(PollManageGuid);

                Assert.AreEqual(1, response.Count);

                ManageVoteResponseModel responseBallot = response[0];

                Assert.AreEqual(expectedVoterName, responseBallot.VoterName);
                Assert.AreEqual(1, responseBallot.Votes.Count);

                VoteResponse responseVote = responseBallot.Votes[0];

                Assert.AreEqual(expectedChoiceName, responseVote.ChoiceName);
                Assert.AreEqual(expectedVoteValue, responseVote.Value);
                Assert.AreEqual(expectedChoiceNumber, responseVote.ChoiceNumber);
            }