Ejemplo n.º 1
0
        private static MpCommunication FormatCommunication(int authorUserId,
                                                           int domainId,
                                                           MpMessageTemplate template,
                                                           MpMyContact fromContact,
                                                           MpMyContact replyToContact,
                                                           int participantContactId,
                                                           string participantEmail,
                                                           Dictionary <string, object> mergeData)
        {
            var communication = new MpCommunication
            {
                AuthorUserId = authorUserId,
                DomainId     = domainId,
                EmailBody    = template.Body,
                EmailSubject = template.Subject,
                FromContact  = new MpContact {
                    ContactId = fromContact.Contact_ID, EmailAddress = fromContact.Email_Address
                },
                ReplyToContact = new MpContact {
                    ContactId = replyToContact.Contact_ID, EmailAddress = replyToContact.Email_Address
                },
                ToContacts = new List <MpContact> {
                    new MpContact {
                        ContactId = participantContactId, EmailAddress = participantEmail
                    }
                },
                MergeData = mergeData
            };

            return(communication);
        }
Ejemplo n.º 2
0
        public void Execute(IJobExecutionContext context)
        {
            JobDataMap        dataMap  = context.JobDetail.JobDataMap;
            MpMessageTemplate template = _communicationService.GetTemplate(dataMap.GetIntValue("TemplateId"));
            string            htmlBody = _communicationService.ParseTemplateBody(template.Body, (Dictionary <string, object>)dataMap["MergeData"]);
            string            textBody = HtmlHelper.StripHTML(htmlBody);

            _textCommunicationService.SendTextMessage(dataMap.GetString("ToPhoneNumber"), textBody);
        }
Ejemplo n.º 3
0
        public void TestExecute()
        {
            IJobDetail jobDetail = new JobDetailImpl("jobsettings", typeof(SendTextMessageJob));

            _mockJobExecutionContext.Setup(mock => mock.JobDetail).Returns(jobDetail);

            MpMessageTemplate mockMessageTemplate = new MpMessageTemplate()
            {
                Body = "<div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Hi there!<br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Welcome to the [Event_Date] [EVent_Start_Time] Crossroads service. </div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Click here to join us:  https://[BaseUrl]/live/stream</div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">We\'re glad you\'re here,</div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">-Crossroads</div></div>"
            };

            string mockParsedTemplate =
                "<div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Hi there!<br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Welcome to the word up Crossroads service. </div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">Click here to join us:  https://localhost/live/stream</div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\"><br /></div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">We\'re glad you\'re here,</div><div style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8px; background-color: rgb(255, 255, 255);\">-Crossroads</div></div>";

            TextCommunicationDto dto = new TextCommunicationDto()
            {
                MergeData     = new Dictionary <string, object>(),
                StartDate     = DateTime.Now,
                TemplateId    = 10,
                ToPhoneNumber = "+12345678910"
            };

            dto.MergeData.Add("Event_Date", "datey mcdateface");
            dto.MergeData.Add("Event_Start_Time", "starty mctimeface");

            IDictionary <string, object> keyValuePairs = new Dictionary <string, object>()
            {
                { "TemplateId", dto.TemplateId },
                { "MergeData", dto.MergeData },
                { "StartDate", dto.StartDate },
                { "ToPhoneNumber", dto.ToPhoneNumber }
            };

            JobDataMap jobDataMap = new JobDataMap(keyValuePairs);

            _mockJobExecutionContext.SetupGet(p => p.JobDetail.JobDataMap).Returns(jobDataMap);

            _communicationRepository.Setup(mock => mock.GetTemplate(dto.TemplateId)).Returns(mockMessageTemplate);
            _communicationRepository.Setup(mock => mock.ParseTemplateBody(It.IsAny <string>(), It.IsAny <Dictionary <string, object> >()))
            .Returns(mockParsedTemplate);

            var expectedBody = HtmlHelper.StripHTML(mockParsedTemplate);

            var spiedBody  = "";
            var spiedPhone = "";

            _textCommunicationService.Setup(mock => mock.SendTextMessage(It.IsAny <string>(), It.IsAny <string>()))
            .Callback <string, string>((phone, body) =>
            {
                spiedBody  = body;
                spiedPhone = phone;
            });
            _fixture.Execute(_mockJobExecutionContext.Object);
            Assert.AreEqual(dto.ToPhoneNumber, spiedPhone);
            Assert.AreEqual(expectedBody, spiedBody);
        }
Ejemplo n.º 4
0
        public void TestSendEmailWithContactId()
        {
            EmailCommunicationDTO emailData = new EmailCommunicationDTO
            {
                TemplateId  = 264567,
                MergeData   = new Dictionary <string, object>(),
                ToContactId = 10,
                StartDate   = DateTime.Now
            };

            MpMessageTemplate template = new MpMessageTemplate()
            {
                Body                = "body",
                Subject             = "subject",
                FromContactId       = 5,
                FromEmailAddress    = "*****@*****.**",
                ReplyToContactId    = 5,
                ReplyToEmailAddress = "[email protected]."
            };

            MpContact expectedContact = new MpContact()
            {
                ContactId    = emailData.ToContactId.Value,
                EmailAddress = "*****@*****.**"
            };

            _communicationService.Setup(mocked => mocked.GetTemplate(emailData.TemplateId)).Returns(template);
            _communicationService.Setup(mocked => mocked.GetEmailFromContactId(template.ReplyToContactId)).Returns(template.ReplyToEmailAddress);
            _communicationService.Setup(mocked => mocked.GetEmailFromContactId(emailData.ToContactId.Value)).Returns("*****@*****.**");
            _communicationService.Setup(mocked => mocked.GetEmailFromContactId(template.FromContactId)).Returns(template.FromEmailAddress);
            _communicationService.Setup(mocked => mocked.GetTemplate(emailData.TemplateId)).Returns(template);
            _contactService.Setup(mocked => mocked.GetContactIdByEmail(emailData.emailAddress)).Returns(0);

            var spiedComm = new MpCommunication();

            _communicationService.Setup(m => m.SendMessage(It.IsAny <MpCommunication>(), false))
            .Callback <MpCommunication, bool>((comm, token) => spiedComm = comm);


            fixture.SendEmail(emailData, null);
            _communicationService.Verify(m => m.SendMessage(It.IsAny <MpCommunication>(), false), Times.Once);
            Assert.AreEqual(JsonConvert.SerializeObject(expectedContact), JsonConvert.SerializeObject(spiedComm.ToContacts[0]));
        }
Ejemplo n.º 5
0
        public MpMessageTemplate GetTemplate(int templateId)
        {
            var pageRecords = _ministryPlatformService.GetRecordDict(_messagePageId, templateId, ApiLogin());

            if (pageRecords == null)
            {
                throw new InvalidOperationException("Couldn't find message template.");
            }

            var template = new MpMessageTemplate
            {
                Body                = pageRecords["Body"].ToString(),
                Subject             = pageRecords["Subject"].ToString(),
                FromContactId       = pageRecords.ToInt("From_Contact"),
                FromEmailAddress    = Regex.Replace(pageRecords["From_Contact_Text"].ToString(), "^.*;\\s*", string.Empty),
                ReplyToContactId    = pageRecords.ToInt("Reply_to_Contact"),
                ReplyToEmailAddress = Regex.Replace(pageRecords["Reply_to_Contact_Text"].ToString(), "^.*;\\s*", string.Empty)
            };

            return(template);
        }
Ejemplo n.º 6
0
 private static MpCommunication MpCommunication(MpMessageTemplate template, MpSimpleContact to)
 {
     return(new MpCommunication
     {
         AuthorUserId = 1,
         DomainId = 1,
         EmailBody = template.Body,
         EmailSubject = template.Subject,
         FromContact = new MpContact {
             EmailAddress = template.FromEmailAddress, ContactId = template.FromContactId
         },
         MergeData = It.IsAny <Dictionary <string, object> >(),
         ReplyToContact = new MpContact {
             EmailAddress = template.ReplyToEmailAddress, ContactId = template.ReplyToContactId
         },
         StartDate = DateTime.Now,
         TemplateId = 23,
         ToContacts = new List <MpContact> {
             new MpContact {
                 ContactId = to.ContactId, EmailAddress = to.EmailAddress
             }
         }
     });
 }
Ejemplo n.º 7
0
        public void ShouldSendChildcareRequestNotification()
        {
            var startDate = new DateTime(2016, 5, 26);
            var endDate   = new DateTime(2016, 7, 2);

            var notificationTemplateId = 0985627;
            var defaultAuthorId        = 9087345;

            var template = new MpMessageTemplate()
            {
                Body    = "Ok long string of text",
                Subject = "A subject"
            };

            var request = new MpChildcareRequestEmail()
            {
                RequestId             = 1,
                RequesterEmail        = "*****@*****.**",
                ChildcareContactEmail = "*****@*****.**",
                ChildcareContactId    = 12,
                ChildcareSession      = "Monday, 9am - 12pm",
                CongregationName      = "Florence",
                EndDate           = endDate,
                StartDate         = startDate,
                EstimatedChildren = 2,
                Frequency         = "once",
                RequesterLastName = "Nair",
                RequesterNickname = "Lak",
                Requester         = "Nair, Lak",
                RequesterId       = 432,
                GroupName         = "FI 101"
            };

            var mergeData = new Dictionary <string, object>
            {
                { "Requester", request.Requester },
                { "Nickname", request.RequesterNickname },
                { "LastName", request.RequesterLastName },
                { "Group", request.GroupName },
                { "Site", request.CongregationName },
                { "StartDate", (request.StartDate).ToShortDateString() },
                { "EndDate", (request.EndDate).ToShortDateString() },
                { "ChildcareSession", request.ChildcareSession },
                { "RequestId", request.RequestId },
                { "Base_Url", "https://localhost:3000" }
            };

            var communication = new MpCommunication
            {
                TemplateId   = 0,
                DomainId     = 0,
                AuthorUserId = defaultAuthorId,
                EmailBody    = template.Body,
                EmailSubject = template.Subject,
                FromContact  = new MpContact {
                    ContactId = request.RequesterId, EmailAddress = request.RequesterEmail
                },
                ReplyToContact = new MpContact {
                    ContactId = request.RequesterId, EmailAddress = request.RequesterEmail
                },
                ToContacts = new List <MpContact> {
                    new MpContact {
                        ContactId = request.ChildcareContactId, EmailAddress = request.ChildcareContactEmail
                    }
                },
                MergeData = mergeData
            };

            _configurationWrapper.Setup(m => m.GetConfigIntValue("ChildcareRequestNotificationTemplate")).Returns(notificationTemplateId);
            _configurationWrapper.Setup(m => m.GetConfigIntValue("DefaultUserAuthorId")).Returns(defaultAuthorId);
            _communicationService.Setup(m => m.GetTemplate(notificationTemplateId)).Returns(template);
            _configurationWrapper.Setup(m => m.GetConfigValue("BaseMPUrl")).Returns("https://localhost:3000");
            _communicationService.Setup(m => m.SendMessage(It.IsAny <MinistryPlatform.Translation.Models.MpCommunication>(), false)).Verifiable();

            _fixture.SendChildcareRequestNotification(request);


            _communicationService.VerifyAll();
        }
Ejemplo n.º 8
0
        public void CanCreateInvitationsForGroups()
        {
            const string token = "dude";

            var invitation = new Invitation()
            {
                EmailAddress   = "*****@*****.**",
                GroupRoleId    = GroupRoleLeader,
                InvitationType = GroupInvitationType,
                RecipientName  = "Dudley Doright",
                RequestDate    = new DateTime(2016, 7, 6),
                SourceId       = 33
            };

            var mpInvitation = new MpInvitation
            {
                InvitationType = invitation.InvitationType,
                EmailAddress   = invitation.EmailAddress,
                GroupRoleId    = invitation.GroupRoleId,
                RecipientName  = invitation.RecipientName,
                RequestDate    = invitation.RequestDate,
                SourceId       = invitation.SourceId,
                InvitationGuid = "guid123",
                InvitationId   = 11
            };

            _invitationRepository.Setup(
                m =>
                m.CreateInvitation(
                    It.Is <MpInvitation>(
                        i =>
                        i.InvitationType == invitation.InvitationType && i.EmailAddress.Equals(invitation.EmailAddress) && i.GroupRoleId == invitation.GroupRoleId &&
                        i.RecipientName.Equals(invitation.RecipientName) && i.RequestDate.Equals(invitation.RequestDate) && i.SourceId == invitation.SourceId))).Returns(mpInvitation);

            var testGroup = new MpGroup
            {
                GroupId = 33,
                Name    = "TestGroup"
            };

            _groupRepository.Setup(mocked => mocked.getGroupDetails(invitation.SourceId)).Returns(testGroup);

            var testLeaderParticipant = new MpParticipant
            {
                DisplayName  = "TestLeaderName",
                ContactId    = 123,
                EmailAddress = "*****@*****.**"
            };

            var leaderContact = new MpMyContact
            {
                Last_Name = "TestLast",
                Nickname  = "TestNick"
            };

            _contactRespository.Setup(mocked => mocked.GetContactById(testLeaderParticipant.ContactId)).Returns(leaderContact);

            _participantRepository.Setup(mocked => mocked.GetParticipantRecord(token)).Returns(testLeaderParticipant);

            var template = new MpMessageTemplate
            {
                Body                = "body",
                FromContactId       = 12,
                FromEmailAddress    = "*****@*****.**",
                ReplyToContactId    = 34,
                ReplyToEmailAddress = "*****@*****.**",
                Subject             = "subject"
            };

            _communicationService.Setup(mocked => mocked.GetTemplate(GroupInvitationEmailTemplate)).Returns(template);

            //_communicationService.Setup(
            //    mocked =>
            //        mocked.SendMessage(
            //            It.Is<MpCommunication>(
            //                c =>
            //                    c.AuthorUserId == 5 && c.DomainId == DomainId && c.EmailBody.Equals(template.Body) && c.EmailSubject.Equals(template.Subject) &&
            //                    c.FromContact.ContactId == template.FromContactId && c.FromContact.EmailAddress.Equals(template.FromEmailAddress) &&
            //                    c.ReplyToContact.ContactId == template.ReplyToContactId && c.ReplyToContact.EmailAddress.Equals(template.ReplyToEmailAddress) &&
            //                    c.ToContacts.Count == 1 && c.ToContacts[0].EmailAddress.Equals(invitation.EmailAddress) &&
            //                    c.MergeData["Invitation_GUID"].ToString().Equals(mpInvitation.InvitationGuid) &&
            //                    c.MergeData["Recipient_Name"].ToString().Equals(mpInvitation.RecipientName) &&
            //                    c.MergeData["Leader_Name"].ToString().Equals(testLeaderParticipant.DisplayName) &&
            //                    c.MergeData["Group_Name"].ToString().Equals(testGroup.Name)),
            //            false)).Returns(77);

            _communicationService.Setup(
                mocked =>
                mocked.SendMessage(
                    It.Is <MpCommunication>(
                        c =>
                        c.AuthorUserId == 5 && c.DomainId == DomainId && c.EmailBody.Equals(template.Body) && c.EmailSubject.Equals(template.Subject) &&
                        c.FromContact.ContactId == template.FromContactId && c.FromContact.EmailAddress.Equals(template.FromEmailAddress) &&
                        c.ReplyToContact.ContactId == testLeaderParticipant.ContactId && c.ReplyToContact.EmailAddress.Equals(template.ReplyToEmailAddress) &&
                        c.ToContacts.Count == 1 && c.ToContacts[0].EmailAddress.Equals(invitation.EmailAddress) &&
                        c.MergeData["Invitation_GUID"].ToString().Equals(mpInvitation.InvitationGuid) &&
                        c.MergeData["Recipient_Name"].ToString().Equals(mpInvitation.RecipientName) &&
                        c.MergeData["Leader_Name"].ToString().Equals(leaderContact.Nickname + " " + leaderContact.Last_Name) &&
                        c.MergeData["Group_Name"].ToString().Equals(testGroup.Name)),
                    false)).Returns(77);

            var created = _fixture.CreateInvitation(invitation, token);

            _invitationRepository.VerifyAll();
            _communicationService.VerifyAll();
            Assert.AreSame(invitation, created);
            Assert.AreEqual(mpInvitation.InvitationId, created.InvitationId);
            Assert.AreEqual(mpInvitation.InvitationGuid, created.InvitationGuid);
        }
Ejemplo n.º 9
0
        public void CanCreateInvitationsForAnywhereGroups()
        {
            const string token = "dude";

            string groupName              = "Dougs Anywhere Gathering";
            string recipientName          = "doug";
            string formattedRecipientName = "Doug";
            string leaderFName            = "xavier";
            string leaderLName            = "johnson";
            string formattedLeaderName    = "Xavier J.";

            string city        = "Lima";
            string state       = "Ohio";
            string description = "descriptive description";
            int    sourceId    = 12345;
            int    groupRoleId = 16;

            var invitation = new Invitation()
            {
                RecipientName  = recipientName,
                EmailAddress   = "*****@*****.**",
                SourceId       = sourceId,
                GroupRoleId    = groupRoleId,
                InvitationType = AnywhereGatheringInvitationTypeID
            };

            var mpInvitation = new MpInvitation
            {
                InvitationType = invitation.InvitationType,
                EmailAddress   = invitation.EmailAddress,
                GroupRoleId    = invitation.GroupRoleId,
                RecipientName  = invitation.RecipientName,
                RequestDate    = invitation.RequestDate,
                SourceId       = invitation.SourceId,
                InvitationGuid = "guid123",
                InvitationId   = 11
            };

            _invitationRepository.Setup(
                m =>
                m.CreateInvitation(
                    It.Is <MpInvitation>(
                        i =>
                        i.InvitationType == invitation.InvitationType && i.EmailAddress.Equals(invitation.EmailAddress) && i.GroupRoleId == invitation.GroupRoleId &&
                        i.RecipientName.Equals(invitation.RecipientName) && i.SourceId == invitation.SourceId))).Returns(mpInvitation);

            var testGroup = new MpGroup
            {
                GroupId = 33,
                Name    = groupName,
                Address = new MpAddress()
                {
                    City  = city,
                    State = state
                },
                GroupDescription = description
            };

            _groupRepository.Setup(mocked => mocked.getGroupDetails(invitation.SourceId)).Returns(testGroup);


            MpParticipant leader = new MpParticipant()
            {
                ContactId = 123456789
            };

            MpMessageTemplate template = new MpMessageTemplate()
            {
                Body                = "this is the template!",
                FromContactId       = 1,
                FromEmailAddress    = "*****@*****.**",
                ReplyToContactId    = leader.ContactId,
                ReplyToEmailAddress = "*****@*****.**",
                Subject             = "TheSubject!"
            };
            MpMyContact leaderContact = new MpMyContact()
            {
                Nickname  = leaderFName,
                Last_Name = leaderLName
            };

            _participantRepository.Setup(mocked => mocked.GetParticipantRecord(token)).Returns(leader);
            _contactRespository.Setup((c) => c.GetContactById(It.Is <int>((i) => i == leader.ContactId))).Returns(leaderContact);
            _communicationService.Setup((c) => c.GetTemplate(It.Is <int>((i) => i == AnywhereGatheringEmailTemplateID))).Returns(template);
            _communicationService.Setup((c) => c.SendMessage(It.Is <MpCommunication>(
                                                                 (confirmation) => confirmation.EmailBody == template.Body &&
                                                                 confirmation.EmailSubject == template.Subject &&
                                                                 confirmation.AuthorUserId == 5 &&
                                                                 confirmation.DomainId == DomainId &&
                                                                 confirmation.FromContact.ContactId == template.FromContactId &&
                                                                 confirmation.ReplyToContact.ContactId == template.ReplyToContactId &&
                                                                 confirmation.TemplateId == AnywhereGatheringEmailTemplateID &&
                                                                 confirmation.ToContacts[0].EmailAddress == invitation.EmailAddress &&
                                                                 (string)confirmation.MergeData["Invitation_GUID"] == mpInvitation.InvitationGuid &&
                                                                 (string)confirmation.MergeData["Recipient_Name"] == formattedRecipientName &&
                                                                 (string)confirmation.MergeData["Leader_Name"] == formattedLeaderName
                                                                 ),
                                                             false));


            var created = _fixture.CreateInvitation(invitation, token);

            _invitationRepository.VerifyAll();
            _communicationService.VerifyAll();
            Assert.AreSame(invitation, created);
            Assert.AreEqual(mpInvitation.InvitationId, created.InvitationId);
            Assert.AreEqual(mpInvitation.InvitationGuid, created.InvitationGuid);
        }
Ejemplo n.º 10
0
        public void ShouldSendEmailToAddedUser()
        {
            var person = new User()
            {
                firstName = "albert",
                lastName  = "einstein",
                email     = "*****@*****.**"
            };

            var token         = "abc";
            var gatheringId   = 12345;
            var emailTemplate = new MpMessageTemplate
            {
                FromContactId       = 234,
                FromEmailAddress    = "*****@*****.**",
                ReplyToContactId    = 456,
                ReplyToEmailAddress = "*****@*****.**"
            };

            var leaderContact = new MpMyContact
            {
                Email_Address = "*****@*****.**",
                First_Name    = "albert",
                Last_Name     = "Einstein"
            };

            var groupAddress = new AddressDTO();

            groupAddress.AddressLine1 = "333";
            groupAddress.AddressLine2 = "vine";
            groupAddress.City         = "Cin";
            groupAddress.State        = "OH";
            groupAddress.PostalCode   = "3455";

            var group = new GroupDTO();

            group.GroupName          = "Physics";
            group.ContactId          = 1;
            group.MeetingDayId       = 1;
            group.MeetingFrequencyID = 1;
            group.MeetingTime        = "0001-01-01T05:25:00.000Z";
            group.Address            = groupAddress;

            var mpParticpant = new MpParticipant();

            mpParticpant.ContactId     = 1;
            mpParticpant.ParticipantId = 3;

            var groupList = new List <GroupDTO>();

            groupList.Add(group);

            _mpConfigurationWrapper.Setup(x => x.GetConfigIntValue("GroupsAddParticipantEmailNotificationTemplateId")).Returns(1);
            _communicationRepository.Setup(x => x.GetTemplate(1)).Returns(emailTemplate);
            _mpContactRepository.Setup(x => x.GetContactId(It.IsAny <string>())).Returns(3);
            _mpContactRepository.Setup(x => x.GetContactById(3)).Returns(leaderContact);
            _mpContactRepository.Setup(x => x.GetContactIdByEmail(It.IsAny <string>())).Returns(2);
            _groupService.Setup(x => x.GetGroupDetails(It.IsAny <int>())).Returns(group);
            _lookupService.Setup(x => x.GetMeetingDayFromId(It.IsAny <int>())).Returns("Friday");
            _mpParticipantRepository.Setup(x => x.GetParticipantRecord(It.IsAny <string>())).Returns(mpParticpant);
            _groupService.Setup(x => x.GetGroupsByTypeOrId(It.IsAny <string>(), It.IsAny <int>(), null, It.IsAny <int>(), true, false)).Returns(groupList);
            _fixture.SendEmailToAddedUser(token, person, gatheringId);
            _communicationRepository.Verify(x => x.SendMessage(It.IsAny <MinistryPlatform.Translation.Models.MpCommunication>(), false), Times.Once);
        }