public void ChangeDisplayStatus_Bad_InvalidOperationException()
        {
            var target = new UserProfile("FirstName #1", string.Empty,
                                         "Job #1", "Path #1", new SocialLink("Name #1", "Url #1"));

            Assert.False(target.IsReadyForDisplay);
            Assert.False(target.DisplayAsTeamMember);

            Assert.Throws <InvalidOperationException>(() => target.ChangeDisplayStatus(true));
        }
        public void UpdatePersonalInfo_Good_LoseDisplayAsTeamMemberFlag()
        {
            var target = new UserProfile("FirstName #1", "LastName #1", "Job #1", "Path #1",
                                         GetTestSocialLinkCollection());

            Assert.True(target.IsReadyForDisplay);
            Assert.False(target.DisplayAsTeamMember);
            target.ChangeDisplayStatus(true);
            Assert.True(target.DisplayAsTeamMember);

            target.UpdatePersonalInfo("FirstName #2", "LastName #2", null, "Path #2");

            Assert.False(target.IsReadyForDisplay);
            Assert.False(target.DisplayAsTeamMember);
        }
        public void ChangeDisplayStatus_Good()
        {
            var target = new UserProfile("FirstName #1", "LastName #1", "Job #1", "Path #1",
                                         GetTestSocialLinkCollection());

            Assert.True(target.IsReadyForDisplay);
            Assert.False(target.DisplayAsTeamMember);

            Assert.Raises <EventArgs>(
                handler => target.UserInfoUpdated += handler,
                handler => target.UserInfoUpdated -= handler,
                () => target.ChangeDisplayStatus(true));

            Assert.True(target.IsReadyForDisplay);
            Assert.True(target.DisplayAsTeamMember);
        }