public ProcessedGroupHomepage(string title, string metaDescription, string backgroundImage, string featuredGroupsHeading, List <Group> featuredGroups,
                               GroupCategory featuredGroupsCategory, GroupSubCategory featuredGroupsSubCategory, List <Alert> alerts, string bodyHeading, string body, string secondaryBodyHeading, string secondaryBody, EventBanner eventBanner)
 {
     Title                     = title;
     MetaDescription           = metaDescription;
     BackgroundImage           = backgroundImage;
     FeaturedGroupsHeading     = featuredGroupsHeading;
     FeaturedGroups            = featuredGroups;
     FeaturedGroupsCategory    = featuredGroupsCategory;
     FeaturedGroupsSubCategory = featuredGroupsSubCategory;
     Alerts                    = alerts;
     BodyHeading               = bodyHeading;
     Body = body;
     SecondaryBodyHeading = secondaryBodyHeading;
     SecondaryBody        = secondaryBody;
     EventBanner          = eventBanner;
 }
        public void ShouldReturnGroupHomepage()
        {
            // Arrange
            var eventBanner   = new EventBanner("title", "teaser", "icon", "link");
            var featuredGroup = new GroupBuilder().Build();
            var category      = new GroupCategory("title", "slug", "icon", "image");
            var subCategory   = new GroupSubCategory("title", "slug");
            var alert         = new Alert("title", "subheading", "body", "severity", DateTime.MinValue, DateTime.MinValue,
                                          "slug", false);

            _groupFactory.Setup(o => o.ToModel(It.IsAny <ContentfulGroup>())).Returns(featuredGroup);
            _groupCategoryFactory.Setup(o => o.ToModel(It.IsAny <ContentfulGroupCategory>())).Returns(category);
            _groupSubCategoryFactory.Setup(o => o.ToModel(It.IsAny <ContentfulGroupSubCategory>())).Returns(subCategory);
            _eventBannerFactory.Setup(o => o.ToModel(_contentfulGroupHomepage.EventBanner)).Returns(eventBanner);
            _alertFactory.Setup(_ => _.ToModel(It.IsAny <ContentfulAlert>())).Returns(alert);

            // Act
            var result = _groupHomepageContentfulFactory.ToModel(_contentfulGroupHomepage);

            // Assert
            result.Title.Should().Be("title");
            result.Slug.Should().Be("slug");
            result.MetaDescription.Should().Be("metaDescription");
            result.BackgroundImage.Should().Be("image-url.jpg");
            result.FeaturedGroupsHeading.Should().Be("heading");

            result.FeaturedGroups.Count.Should().Be(1);
            result.FeaturedGroups.First().Should().BeEquivalentTo(featuredGroup);

            result.FeaturedGroupsCategory.Should().BeEquivalentTo(category);
            result.FeaturedGroupsSubCategory.Should().BeEquivalentTo(subCategory);

            result.Alerts.Count().Should().Be(1);
            result.Alerts.First().Should().BeEquivalentTo(alert);

            result.BodyHeading.Should().Be("bodyheading");
            result.Body.Should().Be("body");
            result.SecondaryBodyHeading.Should().Be("secondaryBodyHeading");
            result.SecondaryBody.Should().Be("secondaryBody");
            result.EventBanner.Should().BeEquivalentTo(eventBanner);
        }