public async void LogTheExceptionIfAnExceptionOccurs()
        {
            const int taskId  = 29;
            const int eventId = 15;

            var mediator = new Mock <IMediator>();

            // Setup mock data load
            mediator
            .Setup(x => x.SendAsync(It.IsAny <TaskDetailForNotificationQuery>()))
            .ReturnsAsync(GetTaskDetailForNotificationModel(taskId, eventId));

            // Setup exception
            mediator.Setup(x => x.SendAsync(It.IsAny <NotifyVolunteersCommand>()))
            .Throws(new InvalidOperationException("Test Exception"));

            // Setup expected logging
            var logger = new Mock <ILogger <NotifyAdminForUserUnenrollsHandler> >();

            logger.Setup(x => x.Log(It.IsAny <LogLevel>(),
                                    It.IsAny <EventId>(), It.IsAny <object>(),
                                    It.IsAny <NullReferenceException>(),
                                    It.IsAny <Func <object, Exception, string> >()));

            var options      = GetSettings();
            var notification = GetUserUnenrolls(taskId);

            var target = new NotifyAdminForUserUnenrollsHandler(mediator.Object, options, logger.Object);
            await target.Handle(notification);

            logger.VerifyAll();
        }
        public async void SendToTheAdminEmail()
        {
            const int taskId  = 29;
            const int eventId = 15;

            var taskDetail    = GetTaskDetailForNotificationModel(taskId, eventId);
            var expectedEmail = taskDetail.CampaignContacts.First().Contact.Email;

            var mediator = new Mock <IMediator>();

            // Setup mock data load
            mediator
            .Setup(x => x.SendAsync(It.IsAny <TaskDetailForNotificationQuery>()))
            .ReturnsAsync(taskDetail);

            // Setup action call
            mediator.Setup(x => x.SendAsync(It.Is <NotifyVolunteersCommand>(n => n.ViewModel.EmailRecipients.Contains(expectedEmail))))
            .ReturnsAsync(new Unit());

            var logger       = Mock.Of <ILogger <NotifyAdminForUserUnenrollsHandler> >();
            var options      = GetSettings();
            var notification = GetUserUnenrolls(taskId);

            var target = new NotifyAdminForUserUnenrollsHandler(mediator.Object, options, logger);
            await target.Handle(notification);

            mediator.VerifyAll();
        }
        public async void PassAnEmailSubjectToTheMediator()
        {
            const int taskId  = 29;
            const int eventId = 15;

            var mediator = new Mock <IMediator>();

            // Setup mock data load
            mediator
            .Setup(x => x.SendAsync(It.IsAny <TaskDetailForNotificationQuery>()))
            .ReturnsAsync(GetTaskDetailForNotificationModel(taskId, eventId));

            // Setup action call
            mediator.Setup(x => x.SendAsync(It.Is <NotifyVolunteersCommand>(n => !string.IsNullOrWhiteSpace(n.ViewModel.Subject))))
            .ReturnsAsync(new Unit());

            var logger       = Mock.Of <ILogger <NotifyAdminForUserUnenrollsHandler> >();
            var options      = GetSettings();
            var notification = GetUserUnenrolls(taskId);

            var target = new NotifyAdminForUserUnenrollsHandler(mediator.Object, options, logger);
            await target.Handle(notification);

            mediator.VerifyAll();
        }
Exemplo n.º 4
0
        public async void PassAnEmailSubjectToTheMediator()
        {
            const int volunteerTaskId = 29;
            const int eventId         = 15;

            var mediator = new Mock <IMediator>();

            // Setup mock data load
            mediator
            .Setup(x => x.SendAsync(It.IsAny <VolunteerTaskDetailForNotificationQuery>()))
            .ReturnsAsync(GetTaskDetailForNotificationModel(volunteerTaskId, eventId));

            var logger       = Mock.Of <ILogger <NotifyAdminForUserUnenrollsHandler> >();
            var options      = GetSettings();
            var notification = GetUserUnenrolls(volunteerTaskId);

            var target = new NotifyAdminForUserUnenrollsHandler(mediator.Object, options, logger);
            await target.Handle(notification);

            mediator.VerifyAll();
        }
        public async void SkipNotificationIfAdminEmailIsNotSpecified()
        {
            const int taskId       = 29;
            const int eventId      = 15;
            var       eventDetails = GetTaskDetailForNotificationModel(taskId, eventId, string.Empty);

            var mediator = new Mock <IMediator>();

            // Setup mock data load
            mediator
            .Setup(x => x.SendAsync(It.IsAny <TaskDetailForNotificationQuery>()))
            .ReturnsAsync(eventDetails);

            var logger       = Mock.Of <ILogger <NotifyAdminForUserUnenrollsHandler> >();
            var options      = GetSettings();
            var notification = GetUserUnenrolls(taskId);

            var target = new NotifyAdminForUserUnenrollsHandler(mediator.Object, options, logger);
            await target.Handle(notification);

            // Verify the action call never occurs
            mediator.Verify(x => x.SendAsync(It.IsAny <NotifyVolunteersCommand>()), Times.Never);
        }