Exemplo n.º 1
0
        public void UpdatePost_PreviouslyPublishedDraftToPublished_TitleIsUpdated_UpdateSlug()
        {
            var testDataStore    = new BlogDataStore(new FakeFileSystem());
            var slugGenerator    = new SlugGenerator(testDataStore);
            var excerptGenerator = new ExcerptGenerator(140);

            var post = new Post {
                Title    = "Title",
                Slug     = "Title",
                IsPublic = false,
            };

            testDataStore.SavePost(post);

            var testEditModel = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            testEditModel.PageContext = new PageContext();
            testEditModel.EditedPost  = new EditModel.EditedPostModel {
                Title   = "Edited Title",
                Excerpt = "Excerpt",
            };

            testEditModel.OnPostPublish(post.Id.ToString("N"), true);

            post = testDataStore.GetPost(post.Id.ToString("N"));

            Assert.Equal("Edited-Title", post.Slug);
        }
Exemplo n.º 2
0
        public void UpdatePost_PreviouslyPublishedDraftToPublished_DoNotUpdatePubDate()
        {
            var testDataStore    = new BlogDataStore(new FakeFileSystem());
            var slugGenerator    = new SlugGenerator(testDataStore);
            var excerptGenerator = new ExcerptGenerator(140);

            var post = new Post {
                Title    = "Title",
                Slug     = "Title",
                IsPublic = false,
                PubDate  = new DateTimeOffset(new DateTime(1997, 7, 3), TimeSpan.Zero),
            };

            testDataStore.SavePost(post);

            var testEditModel = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            testEditModel.PageContext = new PageContext();
            testEditModel.EditedPost  = new EditModel.EditedPostModel {
                Title   = "Edited Title",
                Excerpt = "Excerpt",
            };

            testEditModel.OnPostPublish(post.Id.ToString("N"), true);

            post = testDataStore.GetPost(post.Id.ToString("N"));

            Assert.Equal(new DateTimeOffset(new DateTime(1997, 7, 3), TimeSpan.Zero), post.PubDate);
        }
Exemplo n.º 3
0
        public void SaveComment_SaveSimpleComment()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };

            Comment testComment = new Comment
            {
                AuthorName = "Test name",
                Body       = "Test body",
                PubDate    = DateTimeOffset.Now,
                IsPublic   = true
            };

            testPost.Comments.Add(testComment);
            testDataStore.SavePost(testPost);

            string filePath = $"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":", "-")}_{testPost.Id}.xml";

            Assert.True(testFileSystem.FileExists(filePath));
            StringReader xmlFileContents = new StringReader(testFileSystem.ReadFileText(filePath));
            XDocument    doc             = XDocument.Load(xmlFileContents);

            Assert.True(doc.Root.Elements("Comments").Any());
        }
Exemplo n.º 4
0
        public void UpdatePost_PublishedToPublished_TitleIsUpdated_UpdateSlug()
        {
            BlogDataStore    testDataStore    = new BlogDataStore(new FakeFileSystem());
            SlugGenerator    slugGenerator    = new SlugGenerator(testDataStore);
            ExcerptGenerator excerptGenerator = new ExcerptGenerator(140);

            Post post = new Post {
                Title    = "Title",
                Slug     = "Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now,
            };

            testDataStore.SavePost(post);

            EditModel testEditModel = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            testEditModel.PageContext = new PageContext();
            testEditModel.EditedPost  = new EditModel.EditedPostModel {
                Title   = "Edited Title",
                Excerpt = "Excerpt",
            };

            testEditModel.OnPostPublish(post.Id, true);

            post = testDataStore.GetPost(post.Id);

            Assert.Equal("Edited-Title", post.Slug);
        }
        public void CreateSlug_TitleContainsInvalidChars_RemoveInvalidCharsInSlug(string input, string expected)
        {
            var testDataStore     = new BlogDataStore(new FakeFileSystem());
            var testSlugGenerator = new SlugGenerator(testDataStore);

            Assert.Equal(expected, testSlugGenerator.CreateSlug(input));
        }
Exemplo n.º 6
0
        public void UpdatePost_ChangePost_UpdatesXMLFile()
        {
            IFileSystem   fakeFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(fakeFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                Title    = "Old Title",
                Body     = "Old body",
                IsPublic = true,
                Excerpt  = "Old excerpt"
            };

            Post newPost = new Post
            {
                Slug     = "New-Title",
                Title    = "New Title",
                Body     = "New body",
                IsPublic = true,
                Excerpt  = "New excerpt"
            };

            testDataStore.SavePost(oldPost);
            testDataStore.UpdatePost(newPost, oldPost);

            Assert.True(fakeFileSystem.FileExists($"BlogFiles\\New-Title.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\New-Title.xml");

            Assert.Equal(result.Slug, "New-Title");
            Assert.Equal(result.Title, "New Title");
            Assert.Equal(result.Body, "New body");
            Assert.True(result.IsPublic);
            Assert.Equal(result.Excerpt, "New excerpt");
        }
Exemplo n.º 7
0
        public void UpdatePost_PublishedToDraft_TitleIsUpdated_DoNotUpdateSlug()
        {
            BlogDataStore    testDataStore    = new BlogDataStore(new FakeFileSystem());
            SlugGenerator    slugGenerator    = new SlugGenerator(testDataStore);
            ExcerptGenerator excerptGenerator = new ExcerptGenerator(140);

            Post post = new Post {
                Title    = "Title",
                Slug     = "Title",
                IsPublic = true,
            };

            testDataStore.SavePost(post);

            EditModel testEditModel = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            testEditModel.PageContext = new PageContext();
            testEditModel.EditedPost  = new EditModel.EditedPostModel {
                Title   = "Edited Title",
                Excerpt = "Excerpt",
            };

            testEditModel.OnPostSaveDraft(post.Id.ToString("N"));

            post = testDataStore.GetPost(post.Id.ToString("N"));

            Assert.Equal("Title", post.Slug);
        }
Exemplo n.º 8
0
        public void Index_PostSummary_DoesNotIncludeDeletedComments()
        {
            BlogDataStore testDataStore = new BlogDataStore(new FakeFileSystem());

            testDataStore.SavePost(new Post {
                Comments = new List <Comment> {
                    new Comment {
                        Body     = "Test comment 1",
                        IsPublic = true,
                    },
                    new Comment {
                        Body     = "Deleted comment 1",
                        IsPublic = false,
                    },
                },
                IsPublic = true,
                PubDate  = DateTimeOffset.Now,
            });

            IndexModel model = new IndexModel(testDataStore);

            model.OnGet();

            Assert.Equal(1, model.PostSummaries.Count());
            Assert.Equal(1, model.PostSummaries.First().CommentCount);
        }
        public void GetDrafts_ShowDraftSummaries()
        {
            IFileSystem   fakeFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(fakeFileSystem);

            Post draftPost = new Post
            {
                Title    = "Draft Post",
                IsPublic = false,
                PubDate  = DateTime.UtcNow,
            };
            Post publishedPost = new Post
            {
                Title    = "Published Post",
                IsPublic = true,
                PubDate  = DateTime.UtcNow,
            };

            testDataStore.SavePost(draftPost);
            testDataStore.SavePost(publishedPost);

            DraftsModel testDraftsModel = new DraftsModel(testDataStore);

            testDraftsModel.OnGet();
            DraftSummaryModel testDraftSummaryModel = testDraftsModel.DraftSummaries.First();

            Assert.Equal(1, testDraftsModel.DraftSummaries.Count());
            Assert.Equal(draftPost.Id, testDraftSummaryModel.Id);
            Assert.Equal("Draft Post", testDraftSummaryModel.Title);
            Assert.Equal(draftPost.PubDate, testDraftSummaryModel.PublishTime);
            Assert.Equal(0, testDraftSummaryModel.CommentCount);
        }
Exemplo n.º 10
0
        public void SavePost_SetIdTwoPosts_IncrementsId()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost1      = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true,
                PubDate  = DateTime.UtcNow
            };
            Post testPost2 = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true,
                PubDate  = DateTime.UtcNow
            };

            testDataStore.SavePost(testPost1);
            testDataStore.SavePost(testPost2);

            Assert.Equal(testPost2.Id, testPost1.Id + 1);
        }
Exemplo n.º 11
0
        public void GetPost_FindPostBySlug_ReturnsPost()
        {
            BlogDataStore testDataStore = new BlogDataStore(new FakeFileSystem());
            var           comment       = new Comment
            {
                AuthorName = "Test name",
                Body       = "test body",
                PubDate    = DateTimeOffset.Now,
                IsPublic   = true
            };
            Post test = new Post
            {
                Slug         = "Test-Title",
                Title        = "Test Title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt",
            };

            test.Comments.Add(comment);
            testDataStore.SavePost(test);
            Post result = testDataStore.GetPost(test.Id);

            Assert.NotNull(result);
            Assert.Equal(result.Slug, "Test-Title");
            Assert.Equal(result.Body, "Test body");
            Assert.Equal(result.Title, "Test Title");
            Assert.NotNull(result.PubDate);
            Assert.NotNull(result.LastModified);
            Assert.True(result.IsPublic);
            Assert.Equal(result.Excerpt, "Test excerpt");
        }
Exemplo n.º 12
0
        public void SavePost_SetIdTwoPosts_UniqueIds()
        {
            IFileSystem testFileSystem = new FakeFileSystem();
            var         testDataStore  = new BlogDataStore(testFileSystem);
            var         testPost1      = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true,
                PubDate  = DateTime.UtcNow
            };
            var testPost2 = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true,
                PubDate  = DateTime.UtcNow
            };

            testDataStore.SavePost(testPost1);
            testDataStore.SavePost(testPost2);

            Assert.NotNull(testPost1.Id);
            Assert.NotNull(testPost2.Id);
            Assert.NotEqual(testPost1.Id, testPost2.Id);
        }
Exemplo n.º 13
0
        public void UpdatePost_TitleIsUpdated_UpdateSlug()
        {
            IFileSystem      testFileSystem   = new FakeFileSystem();
            BlogDataStore    testDataStore    = new BlogDataStore(new FakeFileSystem());
            SlugGenerator    slugGenerator    = new SlugGenerator(testDataStore);
            ExcerptGenerator excerptGenerator = new ExcerptGenerator();

            Post post = new Post()
            {
                Slug     = "Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now,
            };

            testDataStore.SavePost(post);

            EditedPostModel editedPost = new EditedPostModel()
            {
                Title = "Edited Title",
            };

            EditModel model = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            model.OnPostPublish(post.Id, true);
            testDataStore.UpdatePost(post, post.IsPublic);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{post.PubDate.ToFileTime()}_{post.Id}.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\{post.PubDate.ToFileTime()}_{post.Id}.xml");

            Assert.Equal("Edited-Title", post.Slug);
        }
Exemplo n.º 14
0
        public void SaveComment_SaveSimpleComment()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTime.Now,
                LastModified = DateTime.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };

            Comment testComment = new Comment
            {
                AuthorName  = "Test name",
                AuthorEmail = "Test email",
                Body        = "Test body",
                PubDate     = DateTime.Now,
                IsPublic    = true
            };

            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists("BlogFiles\\Test-slug.xml"));
            StringReader xmlFileContents = new StringReader(testFileSystem.ReadFileText("BlogFiles\\Test-slug.xml"));
            XDocument    doc             = XDocument.Load(xmlFileContents);

            Assert.True(doc.Root.Elements("Comments").Any());
        }
Exemplo n.º 15
0
        public void UpdatePost_TitleIsUpdated_UpdateSlug()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            Post newPost = new Post
            {
                Slug     = "New-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            testDataStore.SavePost(oldPost);
            newPost.Id = oldPost.Id;
            testDataStore.UpdatePost(newPost, true);

            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\{newPost.PubDate.UtcDateTime.ToString("s").Replace(":","-")}_{newPost.Id}.xml");

            Assert.Equal("New-Title", result.Slug);
        }
Exemplo n.º 16
0
        public void UpdatePost_TitleIsUpdated_UpdateSlug()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            Post newPost = new Post
            {
                Slug     = "New-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            testDataStore.SavePost(oldPost);
            testDataStore.UpdatePost(newPost, oldPost);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{newPost.PubDate.ToFileTime()}_{newPost.Id}.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\{newPost.PubDate.ToFileTime()}_{newPost.Id}.xml");

            Assert.False(testFileSystem.FileExists($"BlogFiles\\Posts\\{oldPost.PubDate.ToFileTime()}_{oldPost.Id}.xml"));
        }
Exemplo n.º 17
0
        public void GetAllPosts_ReturnsList()
        {
            BlogDataStore testDataStore = new BlogDataStore(new FakeFileSystem());
            Post          post1         = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };
            Post post2 = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };

            testDataStore.SavePost(post1);
            testDataStore.SavePost(post2);

            List <Post> posts = testDataStore.GetAllPosts();

            Assert.NotEmpty(posts);
        }
Exemplo n.º 18
0
        public void CreateExcerpt_BodyLengthExceedsMaxLength_ExcerptIsTruncated()
        {
            BlogDataStore    testDataStore        = new BlogDataStore(new FakeFileSystem());
            ExcerptGenerator testExcerptGenerator = new ExcerptGenerator(5);
            string           testExcerpt          = testExcerptGenerator.CreateExcerpt("This is the body");

            Assert.Equal("This ...", testExcerpt);
        }
Exemplo n.º 19
0
        public void CreateExcerpt_BodyLengthDoesNotExceedMaxLength_ExcerptEqualsBody()
        {
            BlogDataStore    testDataStore        = new BlogDataStore(new FakeFileSystem());
            ExcerptGenerator testExcerptGenerator = new ExcerptGenerator(50);
            string           testExcerpt          = testExcerptGenerator.CreateExcerpt("This is the body");

            Assert.Equal("This is the body", testExcerpt);
        }
        public void CollectPostInfo_EmptyFile_DoesNotHavePostNode_SetDefaultValues()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            testFileSystem.WriteFileText($"BlogFiles\\Posts\\empty_file.xml", "");

            Assert.Null(testDataStore.CollectPostInfo($"BlogFiles\\Posts\\empty_file.xml"));
        }
Exemplo n.º 21
0
        public void CreateSlug_SlugIsUnique()
        {
            BlogDataStore testDataStore     = new BlogDataStore(new FakeFileSystem());
            SlugGenerator testSlugGenerator = new SlugGenerator(testDataStore);

            string slug = testSlugGenerator.CreateSlug("Test Title");

            Assert.Equal("Test-Title", slug);
        }
Exemplo n.º 22
0
        public void CreateSlug_SlugExists_AppendNumber()
        {
            BlogDataStore testDataStore = new BlogDataStore(new FakeFileSystem());

            testDataStore.SavePost(new Post {
                Slug = "test"
            });
            SlugGenerator testSlugGenerator = new SlugGenerator(testDataStore);

            string slug = testSlugGenerator.CreateSlug("test");

            Assert.Equal("test-1", slug);
        }
Exemplo n.º 23
0
        public void CreateSlug_ReplacesSpaces()
        {
            IFileSystem testFileSystem    = new FakeFileSystem();
            var         testDataStore     = new BlogDataStore(testFileSystem);
            var         testSlugGenerator = new SlugGenerator(testDataStore);
            var         test = new Post
            {
                Title = "Test title"
            };

            test.Slug = testSlugGenerator.CreateSlug(test.Title);

            Assert.Equal(test.Slug, "Test-title");
        }
        public void CollectPostInfo_EmptyFile_HasPostNode_SetDefaultValues()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            testFileSystem.WriteFileText($"BlogFiles\\Posts\\empty_file.xml", "<Post/>");
            Post testPost = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\empty_file.xml");

            Assert.NotEqual(default(Guid), testPost.Id);
            Assert.Equal("", testPost.Slug);
            Assert.Equal("", testPost.Title);
            Assert.Equal("", testPost.Body);
            Assert.Equal(default(DateTimeOffset), testPost.PubDate);
            Assert.Equal(default(DateTimeOffset), testPost.LastModified);
            Assert.Equal(true, testPost.IsPublic);
            Assert.Equal(false, testPost.IsDeleted);
            Assert.Equal("", testPost.Excerpt);
        }
Exemplo n.º 25
0
        public void SavePost_NoExcerptIsEntered_AutoGenerateExcerpt()
        {
            IFileSystem   fakeFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(fakeFileSystem);

            Post newPost = new Post
            {
                Title = "Title",
                Body  = "This is the body of my post",
            };

            testDataStore.SavePost(newPost);

            Assert.True(fakeFileSystem.FileExists($"BlogFiles\\Title.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Title.xml");

            Assert.Equal(result.Body, "This is the body of my post");
            Assert.Equal(result.Excerpt, "This ");
        }
Exemplo n.º 26
0
        public void SavePost_SaveSimplePost()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post {
                Slug  = "Test-Post-Slug",
                Title = "Test Title",
                Body  = "Test contents",
            };

            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists("BlogFiles\\Test-Post-Slug.xml"));
            Post result = testDataStore.GetPost("Test-Post-Slug");

            Assert.Equal("Test-Post-Slug", result.Slug);
            Assert.Equal("Test Title", result.Title);
            Assert.Equal("Test contents", result.Body);
        }
Exemplo n.º 27
0
        public void OnPostSaveDraft_NoExcerptIsEntered_AutoGenerateExcerpt()
        {
            IFileSystem      fakeFileSystem       = new FakeFileSystem();
            BlogDataStore    testDataStore        = new BlogDataStore(fakeFileSystem);
            ExcerptGenerator testExcerptGenerator = new ExcerptGenerator(5);
            SlugGenerator    testSlugGenerator    = new SlugGenerator(testDataStore);

            NewModel model = new NewModel(testDataStore, testSlugGenerator, testExcerptGenerator);

            model.PageContext = new PageContext();
            model.NewPost     = new NewModel.NewPostViewModel {
                Title = "Title",
                Body  = "This is the body",
            };

            model.OnPostSaveDraft();

            Assert.Equal("This is the body", model.NewPost.Body);
            Assert.Equal("This ...", model.NewPost.Excerpt);
        }
Exemplo n.º 28
0
        public void UpdatePost_ChangePost_DoesNotRemoveComments()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                Title    = "Old Title",
                Body     = "Old body",
                IsPublic = true,
                Excerpt  = "Old excerpt"
            };
            Comment comment = new Comment
            {
                AuthorName  = "Test name",
                AuthorEmail = "Test email",
                Body        = "test body",
                PubDate     = DateTime.Now,
                IsPublic    = true
            };
            Post newPost = new Post
            {
                Slug     = "New-Title",
                Title    = "New Title",
                Body     = "New body",
                IsPublic = true,
                Excerpt  = "New excerpt"
            };

            oldPost.Comments.Add(comment);
            testDataStore.SavePost(oldPost);
            newPost.Comments = oldPost.Comments;
            testDataStore.UpdatePost(newPost, oldPost);
            Post           result   = testDataStore.GetPost(newPost.Slug);
            List <Comment> comments = testDataStore.GetAllComments(newPost.Slug);

            Assert.True(testFileSystem.FileExists(@"BlogFiles\New-Title.xml"));
            Assert.False(testFileSystem.FileExists(@"BlogFiles\Old-Title.xml"));
            Assert.NotEmpty(comments);
        }
Exemplo n.º 29
0
        public void GetAllComments_ReturnsList()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };
            var comment1 = new Comment
            {
                AuthorName = "Test name",
                Body       = "test body",
                PubDate    = DateTimeOffset.Now,
                IsPublic   = true
            };
            var comment2 = new Comment
            {
                AuthorName = "Test name",
                Body       = "test body",
                PubDate    = DateTimeOffset.Now,
                IsPublic   = true
            };

            testPost.Comments.Add(comment1);
            testPost.Comments.Add(comment2);
            testDataStore.SavePost(testPost);

            string       text   = testFileSystem.ReadFileText($"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":","-")}_{testPost.Id}.xml");
            StringReader reader = new StringReader(text);

            XDocument      doc      = XDocument.Load(reader);
            List <Comment> comments = testDataStore.GetAllComments(doc);

            Assert.NotEmpty(comments);
        }
Exemplo n.º 30
0
        public void SavePost_SaveSimplePost()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true
            };

            testPost.PubDate = DateTime.UtcNow;
            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":","-")}_{testPost.Id}.xml"));
            Post result = testDataStore.GetPost(testPost.Id);

            Assert.Equal("Test-Post-Slug", result.Slug);
            Assert.Equal("Test Title", result.Title);
            Assert.Equal("Test contents", result.Body);
        }