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")); }
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); }
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); }
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); }
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 "); }