Esempio n. 1
0
        public async Task ScheduleSendNotification_GetNotification()
        {
            //Arrange
            var type      = nameof(SampleEmailNotification);
            var criteria4 = AbstractTypeFactory <NotificationSearchCriteria> .TryCreateInstance();

            criteria4.Take             = 1;
            criteria4.NotificationType = type;
            _notificationSearchServiceMock.Setup(x => x.SearchNotificationsAsync(criteria4)).ReturnsAsync(new NotificationSearchResult());

            _notificationRegistrar.RegisterNotification <SampleEmailNotification>().WithTemplates(new EmailNotificationTemplate()
            {
                Subject = "SampleEmailNotification test",
                Body    = "SampleEmailNotification body test",
            });
            var notification = AbstractTypeFactory <Notification> .TryCreateInstance(nameof(SampleEmailNotification));

            notification.IsActive = true;
            var jsonSerializeSettings = new JsonSerializerSettings {
                Converters = new List <JsonConverter> {
                    new PolymorphJsonConverter()
                }
            };

            GlobalConfiguration.Configuration.UseSerializerSettings(jsonSerializeSettings);

            //Act
            await _sender.ScheduleSendNotificationAsync(notification);

            //Assert
            Func <Job, bool> condition = job => job.Method.Name == nameof(NotificationSender.TrySendNotificationMessageAsync) && job.Args[0] is null;
            Expression <Func <Job, bool> > expression = a => condition(a);

            _backgroundJobClient.Verify(x => x.Create(It.Is(expression), It.IsAny <EnqueuedState>()));
        }