示例#1
0
        public async Task TestProcessMeetingInvites_StatusSuccess_WithAttachment()
        {
            var applicationAccounts = this.GetApplicationAccounts("*****@*****.**", "*****@*****.**", "Test");
            Dictionary <string, string> testConfigValues = new Dictionary <string, string>()
            {
                { "ApplicationAccounts", JsonConvert.SerializeObject(applicationAccounts) },
                { "RetrySetting", JsonConvert.SerializeObject(this.retrySetting) },
            };
            var res = new ResponseData <string>()
            {
                Status     = true,
                StatusCode = HttpStatusCode.OK,
            };

            _ = this.TokenHelper.Setup(x => x.GetAuthenticationHeaderValueForSelectedAccount(It.IsAny <AccountCredential>())).ReturnsAsync(new AuthenticationHeaderValue("test"));
            _ = this.MsGraphProvider.Setup(x => x.SendMeetingInvite(It.IsAny <AuthenticationHeaderValue>(), It.IsAny <InvitePayload>(), It.IsAny <string>())).ReturnsAsync(res);
            var inviteEntities = this.GetMeetingNotificationItems(NotificationItemStatus.Queued);

            inviteEntities.FirstOrDefault().Attachments = this.GetAttachments();
            var attachmentRes = new Dictionary <string, ResponseData <string> >()
            {
                { inviteEntities.FirstOrDefault().Attachments.FirstOrDefault().FileName, new ResponseData <string>()
                  {
                      Status = true, StatusCode = HttpStatusCode.OK
                  } },
            };

            _ = this.MsGraphProvider.Setup(x => x.SendMeetingInviteAttachments(It.IsAny <AuthenticationHeaderValue>(), It.IsAny <List <FileAttachment> >(), It.IsAny <string>(), It.IsAny <string>())).Returns(attachmentRes);

            var testClass = new MSGraphNotificationProvider(this.Configuration, this.EmailAccountManager.Object, this.Logger, this.MsGraphSetting, Options.Create(this.retrySetting), this.TokenHelper.Object, this.MsGraphProvider.Object, this.EmailManager);
            await testClass.ProcessMeetingNotificationEntities(this.ApplicationName, inviteEntities);

            Assert.IsTrue(inviteEntities.FirstOrDefault().Status == NotificationItemStatus.Sent);
        }
示例#2
0
        public async Task TestProcessMeetingInvites_AuthHeader_Null()
        {
            var applicationAccounts = this.GetApplicationAccounts("*****@*****.**", "*****@*****.**", "Test");
            Dictionary <string, string> testConfigValues = new Dictionary <string, string>()
            {
                { "ApplicationAccounts", JsonConvert.SerializeObject(applicationAccounts) },
                { "RetrySetting", JsonConvert.SerializeObject(this.retrySetting) },
            };
            var inviteEntities = this.GetMeetingNotificationItems(NotificationItemStatus.Sent);
            var testClass      = new MSGraphNotificationProvider(this.Configuration, this.EmailAccountManager.Object, this.Logger, this.MsGraphSetting, Options.Create(this.retrySetting), this.TokenHelper.Object, this.MsGraphProvider.Object, this.EmailManager);
            await testClass.ProcessMeetingNotificationEntities(this.ApplicationName, inviteEntities);

            Assert.IsTrue(inviteEntities.FirstOrDefault().Status == NotificationItemStatus.Failed);
        }
示例#3
0
        public async Task TestProcessMeetingInvites_InviteItems_NullOrEmpty()
        {
            Exception ex        = null;
            var       testClass = new MSGraphNotificationProvider(this.Configuration, this.EmailAccountManager.Object, this.Logger, this.MsGraphSetting, Options.Create(this.retrySetting), this.TokenHelper.Object, this.MsGraphProvider.Object, this.EmailManager);

            try
            {
                await testClass.ProcessMeetingNotificationEntities(this.ApplicationName, null);
            }
            catch (ArgumentNullException ane)
            {
                ex = ane;
            }

            Assert.IsTrue(ex?.Message?.Contains("meetingInviteEntities are null/empty."));
        }