Пример #1
0
        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);
        }