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); }
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("*****@*****.**")); }
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)); }
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("*****@*****.**")); }
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); }