Esempio n. 1
0
        public async Task ProcessMeetingNotificationEntitiesTests_2()
        {
            var provider = new DirectSendNotificationProvider(this.Configuration.Object, this.mockedEmailService.Object, this.Logger, this.mockedEmailManager.Object);
            var entities = new List <MeetingNotificationItemEntity> {
                new MeetingNotificationItemEntity {
                    NotificationId = "notificationId1", RequiredAttendees = "[email protected];[email protected]", OptionalAttendees = "*****@*****.**", RecurrencePattern = NotificationService.Contracts.MeetingRecurrencePattern.Daily, Interval = 2
                }
            };

            _ = this.Configuration.Setup(x => x["MailSettings"]).Returns(JsonConvert.SerializeObject(new List <MailSettings> {
                new MailSettings {
                    ApplicationName = "TestApp", SendForReal = true, ToOverride = "*****@*****.**"
                }
            }));
            provider = new DirectSendNotificationProvider(this.Configuration.Object, this.mockedEmailService.Object, this.Logger, this.mockedEmailManager.Object);
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.Content.Contains("RRULE:FREQ=DAILY;INTERVAL=2;COUNT=1"))), Times.Once);
            entities = new List <MeetingNotificationItemEntity> {
                new MeetingNotificationItemEntity {
                    NotificationId = "notificationId1", RequiredAttendees = "[email protected];[email protected]", OptionalAttendees = "*****@*****.**", RecurrencePattern = NotificationService.Contracts.MeetingRecurrencePattern.Weekly, Interval = 2, DaysOfWeek = "3,5"
                }
            };
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.Content.Contains("RRULE:FREQ=WEEKLY;BYDAY=WE,FR;INTERVAL=2;COUNT=1"))), Times.Once);
            entities = new List <MeetingNotificationItemEntity> {
                new MeetingNotificationItemEntity {
                    NotificationId = "notificationId1", RequiredAttendees = "[email protected];[email protected]", OptionalAttendees = "*****@*****.**", RecurrencePattern = NotificationService.Contracts.MeetingRecurrencePattern.Monthly, Interval = 3, DaysOfWeek = "3,5", DayOfWeekByMonth = "4"
                }
            };
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.Content.Contains("RRULE:FREQ=MONTHLY;BYSETPOS=4;BYDAY=WE,FR;INTERVAL=3;COUNT=1"))), Times.Once);
            entities = new List <MeetingNotificationItemEntity> {
                new MeetingNotificationItemEntity {
                    NotificationId = "notificationId1", RequiredAttendees = "[email protected];[email protected]", OptionalAttendees = "*****@*****.**", RecurrencePattern = NotificationService.Contracts.MeetingRecurrencePattern.Yearly, Interval = 2, DaysOfWeek = "3,5", DayOfWeekByMonth = "4", SequenceNumber = 1, IsPrivate = true, ReminderMinutesBeforeStart = "15"
                }
            };
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.Content.Contains("RRULE:FREQ=YEARLY;BYDAY=WE,FR;BYSETPOS=4;BYMONTH=0;COUNT=1") && q.Content.Contains("TRIGGER:-P15M"))), Times.Once);
        }
Esempio n. 2
0
        public async Task ProcessMeetingNotificationEntitiesTests()
        {
            var provider = new DirectSendNotificationProvider(this.Configuration.Object, this.mockedEmailService.Object, this.Logger, this.mockedEmailManager.Object);
            var entities = new List <MeetingNotificationItemEntity> {
                new MeetingNotificationItemEntity {
                    NotificationId = "notificationId1", RequiredAttendees = "[email protected];[email protected]", OptionalAttendees = "*****@*****.**"
                }
            };
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.CcAddresses == null)), Times.Once);
            _ = this.Configuration.Setup(x => x["MailSettings"]).Returns(JsonConvert.SerializeObject(new List <MailSettings> {
                new MailSettings {
                    ApplicationName = "TestApp", SendForReal = true, ToOverride = "*****@*****.**"
                }
            }));
            provider = new DirectSendNotificationProvider(this.Configuration.Object, this.mockedEmailService.Object, this.Logger, this.mockedEmailManager.Object);
            await provider.ProcessMeetingNotificationEntities("TestApp", entities);

            this.mockedEmailService.Verify(x => x.SendMeetingInviteAsync(It.Is <EmailMessage>(q => q.ToAddresses.Any(r => r.Address == "*****@*****.**") && q.ToAddresses.Any(r => r.Address == "*****@*****.**"))), Times.Once);
        }