void Update_WithThreeSoccerEvents_CallsNotifierSendEmailUsingCorrectInfoParametersOnce()
        {
            // Arrange
            StubThreeSoccerEventsProvider provider = new StubThreeSoccerEventsProvider();
            DummySoccerEventsStore        store    = new DummySoccerEventsStore();
            MockNotifier notifier = new MockNotifier();

            string infoEmailAddress = "*****@*****.**", infoMessage = "Soccer events processed successfully",
                   alertEmailAddress = "*****@*****.**", alertSmsNumber = "6999999999",
                   alertMessage = "ALERT! No soccer events!";

            SoccerEventsTask sut = new SoccerEventsTask(provider, store, notifier,
                                                        infoEmailAddress, infoMessage, alertEmailAddress, alertSmsNumber, alertMessage);

            int expectedTimesSendEmailWasCalled = 1;

            // Act
            sut.Update();

            // Assert
            notifier.SendEmailExpectation(infoEmailAddress, infoMessage, expectedTimesSendEmailWasCalled);
        }
        void Update_WithThreeSoccerEvents_ReturnsTrue()
        {
            // Arrange
            ISoccerEventsProvider provider = new StubThreeSoccerEventsProvider();
            ISoccerEventsStore    store    = new DummySoccerEventsStore();
            INotifier             notifier = new DummyNotifier();

            string infoEmailAddress = "*****@*****.**", infoMessage = "Soccer events processed successfully",
                   alertEmailAddress = "*****@*****.**", alertSmsNumber = "6999999999",
                   alertMessage = "ALERT! No soccer events!";

            SoccerEventsTask sut = new SoccerEventsTask(provider, store, notifier,
                                                        infoEmailAddress, infoMessage, alertEmailAddress, alertSmsNumber, alertMessage);

            bool expected = true;

            // Act
            bool actual = sut.Update();

            // Assert
            Assert.Equal(expected, actual);
        }
        void Update_WithThreeSoccerEvents_CallsNotifierSendEmailOnce()
        {
            // Arrange
            StubThreeSoccerEventsProvider provider = new StubThreeSoccerEventsProvider();
            DummySoccerEventsStore        store    = new DummySoccerEventsStore();
            SpyNotifier notifier = new SpyNotifier();

            string infoEmailAddress = "*****@*****.**", infoMessage = "Soccer events processed successfully",
                   alertEmailAddress = "*****@*****.**", alertSmsNumber = "6999999999",
                   alertMessage = "ALERT! No soccer events!";

            SoccerEventsTask sut = new SoccerEventsTask(provider, store, notifier,
                                                        infoEmailAddress, infoMessage, alertEmailAddress, alertSmsNumber, alertMessage);

            int expectedTimesSendEmailWasCalled = 1;

            // Act
            sut.Update();
            int actualTimesSendEmailWasCalled = notifier.NumberOfTimesSendEmailWasCalled;

            // Assert
            Assert.Equal(expectedTimesSendEmailWasCalled, actualTimesSendEmailWasCalled);
        }