예제 #1
0
        public void CurrentRound_RaisesBeginningNextRoundEvent_BecauseTheNextRoundBegins(Player[] players, int rounds)
        {
            // :::: ARRANGE ::::
            var roundRobin = new RoundRobinTurns(players);
            roundRobin.MonitorEvents();

            // :::: ACT ::::
            var turnsToAdvance = rounds * players.Length;
            turnsToAdvance.Times(() => roundRobin.AdvanceToNextPlayer());

            // :::: ASSERT ::::
            var expectedRound = 1 + rounds;
            roundRobin.ShouldRaise(nameof(roundRobin.BeginningNextRound))
                      .WithSender(roundRobin)
                      .WithArgs<BeginningNextRoundEventArgs>(args => args.Round == expectedRound);
        }