public void ReturnAnEmptyStringInTheByLineFieldIfAuthorFieldIsMissing()
        {
            String fieldValueDelegate(ContentItem c) => c.ByLine;

            var fileContents = new ContentItemFileBuilder()
                               .UseRandomValues()
                               .RemoveAuthor()
                               .Build();

            fileContents.ExecutePagePropertyTest <String>(string.Empty, fieldValueDelegate);
        }
        public void ReturnTheProperValueInTheIdField()
        {
            Guid fieldValueDelegate(ContentItem c) => c.Id;

            var expected     = Guid.NewGuid();
            var fileContents = new ContentItemFileBuilder()
                               .UseRandomValues()
                               .Id(expected)
                               .Build();

            fileContents.ExecutePagePropertyTest <Guid>(expected, fieldValueDelegate);
        }
        public void ReturnTheProperValueInTheLastModificationDateField()
        {
            DateTime fieldValueDelegate(ContentItem c) => c.LastModificationDate.ToSecondPrecision();

            DateTime expected     = DateTime.Parse("1/1/2000").AddSeconds(Int32.MaxValue);
            var      fileContents = new ContentItemFileBuilder()
                                    .UseRandomValues()
                                    .LastModificationDate(expected)
                                    .Build();

            fileContents.ExecutePagePropertyTest <DateTime>(expected.ToSecondPrecision(), fieldValueDelegate);
        }
        public void ReturnTheProperValueInTheSlugField()
        {
            String fieldValueDelegate(ContentItem c) => c.Slug;

            String expected     = string.Empty.GetRandom();
            var    fileContents = new ContentItemFileBuilder()
                                  .UseRandomValues()
                                  .Slug(expected)
                                  .Build();

            fileContents.ExecutePagePropertyTest(expected, fieldValueDelegate);
        }
        public void ReturnFalseIfThePageIsNotMarkedShowInList()
        {
            Boolean fieldValueDelegate(ContentItem c) => c.ShowInList;

            bool expected     = false;
            var  fileContents = new ContentItemFileBuilder()
                                .UseRandomValues()
                                .ShowInList(expected)
                                .Build();

            fileContents.ExecutePagePropertyTest <Boolean>(expected, fieldValueDelegate);
        }
        public void ReturnFalseIfTheIsPublishedFieldIsMissing()
        {
            Boolean fieldValueDelegate(ContentItem c) => c.IsPublished;

            bool expected     = false;
            var  fileContents = new ContentItemFileBuilder()
                                .UseRandomValues()
                                .RemoveIsPublished()
                                .Build();

            fileContents.ExecutePagePropertyTest <Boolean>(expected, fieldValueDelegate);
        }
        public void ReturnTrueIfThePageIsPublished()
        {
            Boolean fieldValueDelegate(ContentItem c) => c.IsPublished;

            bool expected     = true;
            var  fileContents = new ContentItemFileBuilder()
                                .UseRandomValues()
                                .IsPublished(expected)
                                .Build();

            fileContents.ExecutePagePropertyTest <Boolean>(expected, fieldValueDelegate);
        }
        public void ReturnAnEmptyStringInTheByDescriptionFieldIfDescriptionIsMissing()
        {
            String fieldValueDelegate(ContentItem c) => c.Description;

            String expected    = string.Empty;
            var    fileContent = new ContentItemFileBuilder()
                                 .UseRandomValues()
                                 .RemoveDescription()
                                 .Build();

            fileContent.ExecutePagePropertyTest(expected, fieldValueDelegate);
        }
        public void ReturnTheProperValueInTheByLineField()
        {
            String fieldValueDelegate(ContentItem c) => c.ByLine;

            String expectedAuthor = string.Empty.GetRandom();
            String expected       = $"by {expectedAuthor}";
            var    fileContents   = new ContentItemFileBuilder()
                                    .UseRandomValues()
                                    .Author(expectedAuthor)
                                    .Build();

            fileContents.ExecutePagePropertyTest <String>(expected, fieldValueDelegate);
        }
        public void ReturnTheHtmlFormattedValueInTheContentField()
        {
            String fieldValueDelegate(ContentItem c) => c.Content.Trim();

            String content      = string.Empty.GetRandom(500);
            String expected     = $"<p>{content}</p>";
            var    fileContents = new ContentItemFileBuilder()
                                  .UseRandomValues()
                                  .Content(content)
                                  .Build();

            fileContents.ExecutePagePropertyTest <String>(expected, fieldValueDelegate);
        }