public async Task SendNotificationToVolunteersWithCorrectMessage() { const string expectedMessage = "You've been assigned a task from AllReady."; var @task = new AllReadyTask { Id = 1 }; var volunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234", EmailConfirmed = true, PhoneNumberConfirmed = true }; Context.Add(volunteer); Context.Add(@task); Context.SaveChanges(); var message = new TaskAssignedToVolunteersNotification { TaskId = @task.Id, NewlyAssignedVolunteers = new List<string> { volunteer.Id } }; await sut.Handle(message); mediator.Verify(b => b.SendAsync(It.Is<NotifyVolunteersCommand>(notifyCommand => notifyCommand.ViewModel.EmailMessage == expectedMessage && notifyCommand.ViewModel.Subject == expectedMessage && notifyCommand.ViewModel.EmailRecipients.Contains(volunteer.Email) && notifyCommand.ViewModel.SmsRecipients.Contains(volunteer.PhoneNumber) && notifyCommand.ViewModel.SmsMessage == expectedMessage )), Times.Once()); }
public async Task DoesNotSendNotificationToUsersWhoHasntVerifiedPhoneNumber() { var @task = new AllReadyTask { Id = 1 }; var volunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234", PhoneNumberConfirmed = false }; Context.Add(volunteer); Context.Add(@task); Context.SaveChanges(); var message = new TaskAssignedToVolunteersNotification { TaskId = @task.Id, NewlyAssignedVolunteers = new List<string> { volunteer.Id } }; await sut.Handle(message); mediator.Verify(b => b.SendAsync(It.Is<NotifyVolunteersCommand>(notifyCommand => !notifyCommand.ViewModel.SmsRecipients.Contains(volunteer.PhoneNumber) )), Times.Once()); }