Example #1
0
        public void WhenGettingListOfCelebrantsNextWeek_AndWeHaveOnlyOneBirthDay_ThenWeGetOnlyOnePerson()
        {
            // arrange
            var repo = The.Repo().InMemory().Please();

            var mailing = The.Mailing().StoreIn(repo).With(TheLogger.Stub()).Please();

            var homer = The.Person("Homer")
                        .WithEmail("*****@*****.**")
                        .Born(23.FebraryOf(1970));

            mailing.AddRecipient(homer);

            var marge = The.Person("Marge")
                        .WithEmail("*****@*****.**")
                        .Born(8.MarchOf(1973));

            mailing.AddRecipient(marge);

            var bart = The.Person("Bart")
                       .WithEmail("*****@*****.**")
                       .Born(19.MarchOf(1989));

            mailing.AddRecipient(bart);

            // act
            var result = mailing.GetNextWeekCelebrants(20.FebraryOf(2017));

            // assert
            Assert.AreEqual(new Person[] { homer }, result);
        }
Example #2
0
        public void WhenTwoBirthDaysNextWeek_AndWeGetTwoLetters_ThenSecondHasAllAddressesExceptCelebrator()
        {
            var repo = The.Repo()
                       .InMemory()
                       .With(TheLogger.Stub())
                       .Please();

            var mailing = The.Mailing()
                          .StoreIn(repo)
                          .With(TheLogger.Stub())
                          .AddSimpsons()
                          .Please();

            var forNextWeek = mailing.CreateBirthDayMessagesForNextWeek(2.MarchOf(2017));

            Assert.True(The.MessageList(forNextWeek).Number(2).ContainEmailsAllExcept("*****@*****.**"));
        }
Example #3
0
        public void WhenAddingSameRecipientTwice_ThanThrowsExceptionAlreadyExists()
        {
            // arrange
            var homer = The.Person("Homer")
                        .WithEmail("*****@*****.**")
                        .Born(23.FebraryOf(1970));

            var repo = The.Repo().InMemory().Please();

            var mailing = The.Mailing()
                          .StoreIn(repo)
                          .With(TheLogger.Stub()).Please();

            mailing.AddRecipient(homer);

            // act & assert
            Assert.Throws <AlreadyExistsException>(() => mailing.AddRecipient(homer));
        }
Example #4
0
        public void WhenOneBirthdayNextWeek_ThenWeGetMailMessageWithoutThatPersonInAddressList()
        {
            var repo = The.Repo()
                       .InMemory()
                       .With(TheLogger.Stub())
                       .Please();

            var mailing = The.Mailing()
                          .StoreIn(repo)
                          .With(TheLogger.Stub())
                          .AddSimpsons()
                          .Please();

            // act
            var forNextWeek = mailing.CreateBirthDayMessagesForNextWeek(4.MarchOf(2017));

            Assert.True(The.MessageList(forNextWeek).First().NotContainInAddress("*****@*****.**"));
        }
Example #5
0
        public void WhenTwoBirthDaysNextWeek_AndWeSendTwoLetters_ThenEmailSenderCalledTwice()
        {
            var logger = TheLogger.Stub();

            var repo = The.Repo()
                       .InMemory()
                       .With(logger)
                       .Please();

            var Email = The.Sender().Email();

            var mailing = The.Mailing()
                          .StoreIn(repo)
                          .With(logger)
                          .AddSimpsons()
                          .SendBy(Email.Please())
                          .Please();

            //act
            mailing.GetMessagesAndSend(2.MarchOf(2017));

            // assert
            Email.SentTimes(2);
        }