public void Test_Notify() { // Arrange var currentInstant = 27.December(2018).At(15, 48, 14).Utc(); this.SetClock(currentInstant); var user = new ApplicationUser { Email = "[email protected]" }; var otherUser = new ApplicationUser { Email = "[email protected]" }; var allUsers = new[] { user, otherUser }; var allocations = Create.Allocations(allUsers, 27.December(2018)) .Concat(Create.Allocations(allUsers, 28.December(2018))) .ToArray(); const bool DailySummaryDue = false; const bool WeeklySummaryDue = false; this.SetupScheduledTasks(currentInstant, DailySummaryDue, WeeklySummaryDue); // Act using (var scope = this.CreateScope()) { scope.ServiceProvider.GetRequiredService <AllocationNotifier>().Notify(allocations); } // Assert this.CheckNotifiedAllocations(allocations); }
public void Test_Notify_ExcludesVisitorAccounts() { // Arrange var currentInstant = 27.December(2018).At(15, 48, 14).Utc(); this.SetClock(currentInstant); var user = new ApplicationUser { Email = "[email protected]", IsVisitor = false }; var visitorUser = new ApplicationUser { Email = "[email protected]", IsVisitor = true }; var allUsers = new[] { user, visitorUser }; var allocations = Create.Allocations(allUsers, 27.December(2018)); const bool DailySummaryDue = false; const bool WeeklySummaryDue = false; this.SetupScheduledTasks(currentInstant, DailySummaryDue, WeeklySummaryDue); // Act using (var scope = this.CreateScope()) { scope.ServiceProvider.GetRequiredService <AllocationNotifier>().Notify(allocations); } // Assert var expectedNotifiedAllocations = allocations.Where(a => a.ApplicationUser == user); this.CheckNotifiedAllocations(expectedNotifiedAllocations.ToArray()); }
public static void TestBody_RecipientInterrupted() { var recipient = Create.User("Pierre-Emerick Aubameyang"); var allocatedUsers = Create.Users("Petr Čech", "Héctor Bellerín"); var interruptedUsers = Create.Users("Sokratis Papastathopoulos", "Mohamed Elneny").Concat(new[] { recipient }); var allUsers = allocatedUsers.Concat(interruptedUsers); var allocations = Create.Allocations(allocatedUsers, default(LocalDate)); var requests = Create.Requests(allUsers, default(LocalDate)); var email = new DailySummary(recipient, allocations, requests); Assert.All(allocatedUsers, a => email.HtmlBody.Contains(a.FullName, StringComparison.InvariantCulture)); Assert.All(allocatedUsers, a => email.PlainTextBody.Contains(a.FullName, StringComparison.InvariantCulture)); const string ExpectedHtmlInterruptedText = "(Interrupted: <strong>Pierre-Emerick Aubameyang</strong>, Mohamed Elneny, Sokratis Papastathopoulos)"; const string ExpectedPlainInterruptedText = "(Interrupted: *Pierre-Emerick Aubameyang*, Mohamed Elneny, Sokratis Papastathopoulos)"; Assert.True(email.HtmlBody.Contains(ExpectedHtmlInterruptedText, StringComparison.InvariantCulture)); Assert.True(email.PlainTextBody.Contains(ExpectedPlainInterruptedText, StringComparison.InvariantCulture)); }
public static void TestSubject_RecipientInterrupted() { var date = 18.December(2018); var recipient = Create.User("Pierre-Emerick Aubameyang"); var allocatedUsers = Create.Users("Petr Čech", "Héctor Bellerín"); var interruptedUsers = Create.Users("Sokratis Papastathopoulos", "Mohamed Elneny").Concat(new[] { recipient }); var allUsers = allocatedUsers.Concat(interruptedUsers); var allocations = Create.Allocations(allocatedUsers, date); var requests = Create.Requests(allUsers, date); var email = new DailySummary(recipient, allocations, requests); Assert.Equal("[INTERRUPTED] 18 Dec Daily allocations summary", email.Subject); }
public static void TestBody() { var recipient = Create.User("Pierre-Emerick Aubameyang"); var firstDateAllocatedUsers = Create.Users("Petr Čech", "Héctor Bellerín").Concat(new[] { recipient }); var firstDateInterruptedUsers = Create.Users("Sokratis Papastathopoulos", "Mohamed Elneny"); var secondDateAllocatedUsers = Create.Users("Henrikh Mkhitaryan", "Laurent Koscielny"); var secondDateInterruptedUsers = Create.Users("Aaron Ramsey", "Alexandre Lacazette").Concat(new[] { recipient }); var allFirstDateUsers = firstDateAllocatedUsers.Concat(firstDateInterruptedUsers); var allSecondDateUsers = secondDateAllocatedUsers.Concat(secondDateInterruptedUsers); var allocations = Create.Allocations(secondDateAllocatedUsers, 21.December(2018)) .Concat(Create.Allocations(firstDateAllocatedUsers, 17.December(2018))); var requests = Create.Requests(allSecondDateUsers, 21.December(2018)) .Concat(Create.Requests(allFirstDateUsers, 17.December(2018))); var email = new WeeklySummary(recipient, allocations.ToArray(), requests.ToArray()); var expectedHtmlValues = new[] { "17 Dec:", "<strong>Pierre-Emerick Aubameyang</strong>", "Héctor Bellerín", "Petr Čech", "(Interrupted: Mohamed Elneny, Sokratis Papastathopoulos)", "21 Dec:", "Laurent Koscielny", "Henrikh Mkhitaryan", "(Interrupted: <strong>Pierre-Emerick Aubameyang</strong>, Alexandre Lacazette, Aaron Ramsey)" }; var expectedPlainTextValues = new[] { "17 Dec:", "*Pierre-Emerick Aubameyang*", "Héctor Bellerín", "Petr Čech", "(Interrupted: Mohamed Elneny, Sokratis Papastathopoulos)", "21 Dec:", "Laurent Koscielny", "Henrikh Mkhitaryan", "(Interrupted: *Pierre-Emerick Aubameyang*, Alexandre Lacazette, Aaron Ramsey)" }; Check_TextAppearsInOrder(expectedHtmlValues, email.HtmlBody); Check_TextAppearsInOrder(expectedPlainTextValues, email.PlainTextBody); }