public void ShouldDelegateRestart()
        {
            //Arrange
            Number            expected          = new NumberOf(1);
            Number            events            = new NumberOf(10);
            MockCounter       mockCounter       = new MockCounter.Builder().Restart().Build();
            MockCountdownTime mockCountdownTime = new MockCountdownTime.Builder().Build();
            CountdownTracker  subject           = new PrivateCtor <CountdownTracker>(mockCounter, events, mockCountdownTime);

            //Act
            subject.Restart();

            //Assert
            mockCounter.AssertRestartInvoked();
        }
        public void ShouldCallActOnLongBreakWhenCounterNotLessThanSessionsToBreak()
        {
            //Arrange
            MockCountdownTimerUpdateAction shortBreak = new MockCountdownTimerUpdateAction.Builder().Build();
            MockCountdownTimerUpdateAction longBreak  = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            MockCounter       mockCounter             = new MockCounter.Builder().Value(new NumberOf(4)).Increment().Restart().Build();
            MockMainForm      mockMainForm            = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();

            SessionTimerUpdateAction_ShowNextStart subject = new PrivateCtor <SessionTimerUpdateAction_ShowNextStart>(shortBreak, longBreak, mockCounter);

            //Act
            subject.Act(mockMainForm, mockCountdownTime, TimerProgress.Last);

            //Assert
            longBreak.AssertActInvokedWith(mockMainForm, mockCountdownTime, TimerProgress.Last);
            mockCounter.AssertValueInvoked();
            mockCounter.AssertIncrementInvoked();
            mockCounter.AssertRestartInvoked();
        }