コード例 #1
0
        private static VoteTracker CreateVoteTrackerWithConstraints()
        {
            var MAX_VOTES_SELECTION  = 3;
            var MAX_VOTES_NOMINATION = 2;

            var vt                 = new VoteTracker();
            var nnrConstraint      = new NoNewRestaurantsConstraint(vt);
            var mvpuConstraint_nom = new MaxVotesPerUserConstraint(vt, MAX_VOTES_NOMINATION);
            var mvpuConstraint_sel = new MaxVotesPerUserConstraint(vt, MAX_VOTES_SELECTION);

            vt.SetConstraints(State.NominationPhase, mvpuConstraint_nom);
            vt.SetConstraints(State.SelectionPhase, mvpuConstraint_sel);
            vt.SetConstraints(State.SelectionPhase, nnrConstraint);

            return(vt);
        }
コード例 #2
0
        public void it_constrains_max_votes_per_user_per_state()
        {
            const int MAX_VOTES_PER_USER = 5;

            var u = new User();
            var r = new Restaurant();

            var vt         = new VoteTracker();
            var constraint = new MaxVotesPerUserConstraint(vt, MAX_VOTES_PER_USER);

            vt.SetConstraints(State.NominationPhase, constraint);

            for (var x = 0; x <= (MAX_VOTES_PER_USER + 1); x++)
            {
                vt.LogVote(u, r);
            }

            Assert.Fail("exception not thrown");
        }