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); }