public void ShouldAct()
        {
            //Arrange
            MockMainForm                  mockMainForm       = new MockMainForm.Builder().Build();
            MockCountdownTimer            mockCountdownTimer = new MockCountdownTimer.Builder().Build();
            MockCountdownTimerStartAction nextAction         = new MockCountdownTimerStartAction.Builder().Act().Build();
            ShortBreakTimerStartAction    subject            = new PrivateCtor <ShortBreakTimerStartAction>(nextAction);

            //Act
            subject.Act(mockMainForm, mockCountdownTimer);

            //Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTimer);
        }
        public void ShouldActGivenMore()
        {
            //Arrange
            TimerProgress     timeProgress                        = TimerProgress.More;
            MockMainForm      mockMainForm                        = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime                   = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction             = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            CountdownTimerUpdateAction_GuardAgainstNoMore subject = new CountdownTimerUpdateAction_GuardAgainstNoMore(nextAction);

            //Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            //Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
        public void ShouldAct()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockMainForm      mockMainForm            = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_TimerRunning subject = new PrivateCtor <CountdownTimerUpdateAction_TimerRunning>(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
        public void ShouldStartTimer()
        {
            //Arrange
            MockMainForm                         mockMainForm       = new MockMainForm.Builder().Build();
            MockCountdownTimer                   mockCountdownTimer = new MockCountdownTimer.Builder().Start().Build();
            MockCountdownTimerStartAction        nextAction         = new MockCountdownTimerStartAction.Builder().Act().Build();
            CountdownTimerStartAction_StartTimer subject            = new CountdownTimerStartAction_StartTimer(nextAction);


            //Act
            subject.Act(mockMainForm, mockCountdownTimer);

            //Assert
            mockCountdownTimer.AssertStartInvoked();
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTimer);
        }
Beispiel #5
0
        public void ShouldAct()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockMainForm      mockMainForm            = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            ShortBreakTimerUpdateAction_TimerFinished subject = new ShortBreakTimerUpdateAction_TimerFinished(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
        public void ShouldAct()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockMainForm      mockMainForm            = new MockMainForm.Builder().ToTop().Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_FormToTop subject = new CountdownTimerUpdateAction_FormToTop(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
            mockMainForm.AssertToTopInvoked();
        }
        public void ShouldColorForeColor()
        {
            //Arrange
            TimerProgress     timeProgress                      = TimerProgress.Last;
            MockWriteColor    mockWriteColor                    = new MockWriteColor.Builder().Write().Build();
            MockMainForm      mockMainForm                      = new MockMainForm.Builder().CountDownForeColorWriter(mockWriteColor).Build();
            MockCountdownTime mockCountdownTime                 = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction           = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            CountdownTimerUpdateAction_DefaultForeColor subject = new CountdownTimerUpdateAction_DefaultForeColor(nextAction);

            //Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            //Assert
            //mockWriteColor.AssertWriteInvokedWithCustom();//TODO: Make sure black is written
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
Beispiel #8
0
        public void ShouldCallActOnEachAction()
        {
            //Arrange
            MockCountdownTimerUpdateAction finished = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            MockCountdownTimerUpdateAction running  = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            MockMainForm      mockMainForm          = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime     = new MockCountdownTime.Builder().Build();

            SessionTimerUpdateAction subject = new PrivateCtor <SessionTimerUpdateAction>(finished, running);

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

            //Assert
            finished.AssertActInvokedWith(mockMainForm, mockCountdownTime, TimerProgress.Last);
            running.AssertActInvokedWith(mockMainForm, mockCountdownTime, TimerProgress.Last);
        }
Beispiel #9
0
        public void ShouldShowShortBreakMessage()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockMainForm      mockMainForm            = new MockMainForm.Builder().ShowAlert().Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_ShowShortBreakOver subject = new CountdownTimerUpdateAction_ShowShortBreakOver(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            mockMainForm.AssertShowAlertInvokedWithCustom(text => ((string)text).Should().Be("Short Break Over!"));
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
        public void ShouldInvokeActionGivenStart()
        {
            //Arrange
            MockMainForm                   mockMainForm       = new MockMainForm.Builder().Build();
            MockCountdownTimer             mockCountdownTimer = new MockCountdownTimer.Builder().Build();
            MockCountdownTimerStartAction  startAction        = new MockCountdownTimerStartAction.Builder().Act().Build();
            MockCountdownTimerUpdateAction updateAction       = new MockCountdownTimerUpdateAction.Builder().Build();

            PomodoroPeriod subject = new TestPomodoroPeriod(mockCountdownTimer, startAction, updateAction);

            //Act
            subject.SetMainForm(mockMainForm);
            subject.Start();

            //Assert
            startAction.AssertActInvokedWith(mockMainForm, mockCountdownTimer);
        }
        public void ShouldWriteFormattedText()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockWriteText     mockWriteText           = new MockWriteText.Builder().Write().Build();
            MockMainForm      mockMainForm            = new MockMainForm.Builder().CountDownTextWriter(mockWriteText).Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Remaining(new Seconds(1)).Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_RemainingTime subject = new CountdownTimerUpdateAction_RemainingTime(nextAction);

            //// Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            mockWriteText.AssertWriteInvokedWithCustom(text => ((string)text).Should().Be("00:01"));
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
        }
        public void ShouldInvokeUpdateOnTrigger()
        {
            //Arrange
            MockCountdownTime              mockCountdownTime  = new MockCountdownTime.Builder().Build();
            MockMainForm                   mockMainForm       = new MockMainForm.Builder().Build();
            MockCountdownTimer             mockCountdownTimer = new MockCountdownTimer.Builder().Build();
            MockCountdownTimerStartAction  startAction        = new MockCountdownTimerStartAction.Builder().Build();
            MockCountdownTimerUpdateAction updateAction       = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            PomodoroPeriod                 subject            = new TestPomodoroPeriod(mockCountdownTimer, startAction, updateAction);

            subject.SetMainForm(mockMainForm);

            //Act
            mockCountdownTimer.TriggerElapsed(mockCountdownTime, TimerProgress.Last);

            //Assert
            updateAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, TimerProgress.Last);
        }
        public void ShouldDisableLongBreak()
        {
            //Arrange
            MockEnabled                   mockEnabled               = new MockEnabled.Builder().Disable().Build();
            MockMainForm                  mockMainForm              = new MockMainForm.Builder().LongBreakStartEnabled(mockEnabled).Build();
            MockCountdownTimer            mockCountdownTimer        = new MockCountdownTimer.Builder().Build();
            MockCountdownTimerStartAction nextAction                = new MockCountdownTimerStartAction.Builder().Act().Build();
            CountdownTimerStartAction_DisableLongBreakStart subject = new CountdownTimerStartAction_DisableLongBreakStart(nextAction);


            //Act
            subject.Act(mockMainForm, mockCountdownTimer);

            //Assert
            mockEnabled.Disable();
            mockMainForm.AssertLongBreakStartEnabledInvoked();
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTimer);
        }
Beispiel #14
0
        public void ShouldAct()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockEnabled       mockEnabled             = new MockEnabled.Builder().Enable().Build();
            MockMainForm      mockMainForm            = new MockMainForm.Builder().ShortBreakStartEnabled(mockEnabled).Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_EnableShortBreakStart subject = new CountdownTimerUpdateAction_EnableShortBreakStart(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
            mockMainForm.AssertShortBreakStartEnabledInvoked();
            mockEnabled.AssertEnableInvoked();
        }
        public void ShouldAct()
        {
            // Arrange
            TimerProgress     timeProgress            = TimerProgress.Last;
            MockVisibility    mockVisibility          = new MockVisibility.Builder().Hide().Build();
            MockMainForm      mockMainForm            = new MockMainForm.Builder().LongBreakStartVisibility(mockVisibility).Build();
            MockCountdownTime mockCountdownTime       = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction = new MockCountdownTimerUpdateAction.Builder().Act().Build();

            CountdownTimerUpdateAction_HideLongBreakStart subject = new CountdownTimerUpdateAction_HideLongBreakStart(nextAction);

            // Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            // Assert
            nextAction.AssertActInvokedWith(mockMainForm, mockCountdownTime, timeProgress);
            mockMainForm.LongBreakStartVisibility();
            mockVisibility.AssertHideInvoked();
        }
        public void ShouldCallActOnShortBreakWhenCounterLessThanSessionsToBreak()
        {
            //Arrange
            MockCountdownTimerUpdateAction shortBreak = new MockCountdownTimerUpdateAction.Builder().Act().Build();
            MockCountdownTimerUpdateAction longBreak  = new MockCountdownTimerUpdateAction.Builder().Build();
            MockCounter       mockCounter             = new MockCounter.Builder().Value(new NumberOf(3)).Increment().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
            shortBreak.AssertActInvokedWith(mockMainForm, mockCountdownTime, TimerProgress.Last);
            mockCounter.AssertValueInvoked();
            mockCounter.AssertIncrementInvoked();
        }
        public void ShouldNotActGivenLast()
        {
            //Arrange
            TimerProgress     timeProgress                        = TimerProgress.Last;
            MockMainForm      mockMainForm                        = new MockMainForm.Builder().Build();
            MockCountdownTime mockCountdownTime                   = new MockCountdownTime.Builder().Build();
            MockCountdownTimerUpdateAction nextAction             = new MockCountdownTimerUpdateAction.Builder().Build();
            CountdownTimerUpdateAction_GuardAgainstNoMore subject = new CountdownTimerUpdateAction_GuardAgainstNoMore(nextAction);

            //Act
            subject.Act(mockMainForm, mockCountdownTime, timeProgress);

            //Assert
            try
            {
                nextAction.Act(null, null, null);
                Assert.Fail("Exception expected");
            }
            catch (TestException ignored) { }
        }