Exemplo n.º 1
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.º 2
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.º 3
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.º 4
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");
        }
        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"));
        }
        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.º 7
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 ");
        }