コード例 #1
0
        public void RecognizesTooManyVotesRule(string msg)
        {
            var state = new GameState();

            state.LastMessages.Add(msg);

            TooManyVotesStateProcessor.ProcessState(state);

            Check.That(state.PollingEnabled).IsFalse();
        }
コード例 #2
0
        public void NothingCHangesIfItsNotTimeYet()
        {
            var state = new GameState();

            state.PollingEnabled   = false;
            state.ReEnabledPollsAt = DateTime.UtcNow.Date.AddDays(1);

            TooManyVotesStateProcessor.ProcessState(state);

            Check.That(state.PollingEnabled).IsFalse();
        }
コード例 #3
0
        public void AfterTheNewDayStartsItsRenabled()
        {
            var state = new GameState();

            state.PollingEnabled   = false;
            state.ReEnabledPollsAt = DateTime.Today.ToUniversalTime();

            TooManyVotesStateProcessor.ProcessState(state);

            Check.That(state.PollingEnabled).IsTrue();
            Check.That(state.ReEnabledPollsAt).IsEqualTo(DateTime.MaxValue);
        }
コード例 #4
0
        public void SetsToMidnightForMyTimezone()
        {
            var state = new GameState();

            state.LastMessages.Add("You broke rule <Voted over 50,000 times per day> and got Ice Storm");

            TooManyVotesStateProcessor.ProcessState(state);

            // assumes test is running in cdt
            Console.WriteLine(state.ReEnabledPollsAt);
            Check.That(state.ReEnabledPollsAt)
            .IsEqualTo(DateTime.Today.AddDays(1).Date.ToUniversalTime());
        }