public void AddSocialLinks_Good_AddNotExistingSocialLink()
        {
            var target = new UserProfile();

            Assert.Empty(target.SocialLinks);
            target.AddSocialLinks(GetTestSocialLinkCollection());
            Assert.Equal(4, target.SocialLinks.Count);
            int expectedSocialLinksCount = 5,
                expectedAddedCount       = 1,
                actualAddedCount         = 0;

            Assert.Raises <EventArgs>(
                handler => target.UserInfoUpdated += handler,
                handler => target.UserInfoUpdated -= handler,
                () => actualAddedCount             = target.AddSocialLinks(
                    new SocialLink("Test Name", "Test Url")
                    ));

            Assert.Equal(expectedAddedCount, actualAddedCount);
            Assert.Equal(expectedSocialLinksCount, target.SocialLinks.Count);
            Assert.Equal("Facebook", target.SocialLinks.First().NetworkName);
            Assert.Equal("Url #1", target.SocialLinks.First().Url);
            Assert.Equal("Test Name", target.SocialLinks.Last().NetworkName);
            Assert.Equal("Test Url", target.SocialLinks.Last().Url);
        }
        public void ClearSocialLinks_Good()
        {
            var target = new UserProfile();

            Assert.Empty(target.SocialLinks);
            target.AddSocialLinks(GetTestSocialLinkCollection());
            Assert.Equal(4, target.SocialLinks.Count);

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

            Assert.Empty(target.SocialLinks);
        }
        public void AddSocialLinks_Good_AddExistingSocialLink()
        {
            var target = new UserProfile("FirstName #1", "LastName #1", "Job #1", "Path #1",
                                         GetTestSocialLinkCollection());
            int expectedSocialLinksCount = 4,
                addedCount = 0;

            Assert.Raises <EventArgs>(
                handler => target.UserInfoUpdated += handler,
                handler => target.UserInfoUpdated -= handler,
                () => addedCount = target.AddSocialLinks(new SocialLink("Facebook", "New Url")));

            Assert.Equal(0, addedCount);
            Assert.Equal(expectedSocialLinksCount, target.SocialLinks.Count);
            Assert.Equal("Facebook", target.SocialLinks.First().NetworkName);
            Assert.Equal("New Url", target.SocialLinks.First().Url);
            Assert.Equal("Linkedin", target.SocialLinks.Last().NetworkName);
            Assert.Equal("Url #4", target.SocialLinks.Last().Url);
        }