public MeetingNotificationBackgroundService( IServiceProvider services, IOptions <MeetingNotificationConfiguration> notificationConfiguration ) { _services = services; _meetingNotificationConfiguration = notificationConfiguration.Value; }
public async void NotifyParticipantsMeeting_NotSendEmailWhenStartDateIsNotAtThePeriod() { var email = "*****@*****.**"; var idMeeting = 1; var idParticipant = 1; var startDateTimeMeeting = new DateTime(2020, 06, 12, 22, 44, 00); var now = new DateTime(2020, 06, 12, 21, 30, 00); _context.Meetings.Add( new Meeting { Id = idMeeting, Name = "meeting", StartDateTimeMeeting = startDateTimeMeeting, EndDateTimeMeeting = new DateTime(2020, 06, 12, 23, 30, 00), IsNotified = false } ); _context.Participants.Add( new Participant { Id = idParticipant, Name = "Sasha", Email = email } ); _context.MeetingParticipants.Add( new MeetingParticipant() { MeetingId = idMeeting, ParticipantId = idParticipant } ); _context.SaveChanges(); _dateTimeProviderMock.Setup(x => x.Now()).Returns(now); var meetingNotificationConfiguration = new MeetingNotificationConfiguration() { MeetingDelayMinutes = 15 }; var meeting = await _context.Meetings.FindAsync(idMeeting); var meetingNotificationService = new MeetingNotificationService( _context, new OptionsWrapper <MeetingNotificationConfiguration>(meetingNotificationConfiguration), _emailServiceMock.Object, _dateTimeProviderMock.Object ); await meetingNotificationService.NotifyParticipantsMeeting(); _emailServiceMock.Verify(send => send.SendEmailAsync(email, meeting), Times.Never); Assert.False(meeting.IsNotified); }
public MeetingNotificationService( ApplicationContext context, IOptions <MeetingNotificationConfiguration> notificationConfiguration, IEmailService emailService, IDateTimeProvider dateTimeProvider ) { _context = context; _meetingNotificationConfiguration = notificationConfiguration.Value; _emailService = emailService; _dateTimeProvider = dateTimeProvider; }