public void TestEmailProfileDetails() { int memberIndex = 0; // Create the inviter. Member inviter = _memberAccountsCommand.CreateTestMember(InviterEmailAddress, InviterFirstName, InviterLastName); inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.All; _memberAccountsCommand.UpdateMember(inviter); // All access, no properties set. memberIndex++; var invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); var templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 0); _emailsCommand.TrySend(templateEmail); var email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, 1 friend. memberIndex++; Member friend = _memberAccountsCommand.CreateTestMember(memberIndex + To, FriendFirstName, FriendLastName); _networkingCommand.CreateFirstDegreeLink(inviter.Id, friend.Id); memberIndex++; invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 1); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, 2 friends. memberIndex++; friend = _memberAccountsCommand.CreateTestMember(memberIndex + To, FriendFirstName, FriendLastName); _networkingCommand.CreateFirstDegreeLink(inviter.Id, friend.Id); memberIndex++; invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // No access, 2 friends. inviter.VisibilitySettings.Personal.FirstDegreeVisibility &= ~PersonalVisibility.FriendsList; _memberAccountsCommand.UpdateMember(inviter); memberIndex++; invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 0); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, current jobs set. inviter.VisibilitySettings.Personal.FirstDegreeVisibility |= PersonalVisibility.FriendsList; _memberAccountsCommand.UpdateMember(inviter); var candidate = _candidatesCommand.GetCandidate(inviter.Id); _candidateResumesCommand.AddTestResume(candidate); memberIndex++; invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // No access, current jobs set. inviter.VisibilitySettings.Personal.FirstDegreeVisibility &= ~PersonalVisibility.CurrentJobs; _memberAccountsCommand.UpdateMember(inviter); memberIndex++; invitation = new FriendInvitation { InviterId = inviter.Id, InviteeEmailAddress = memberIndex + To, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, null, 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); email.AssertHtmlView(GetBody(templateEmail, new Member { EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = invitation.InviteeEmailAddress } } }, GetContent(templateEmail, inviter, invitation, null, null))); email.AssertNoAttachments(); AssertCompatibleAddresses(email); }