public void UpdatePost_UpdatesNewValsAndReturnsTrue() { BlogPostPublished p1 = new BlogPostPublished { BlogPostTemplateId = 19, TimeOfDayPublished = new TimeSpan(5, 0, 0), DatePublished = new DateTime(2017, 6, 1) }; var time2 = new TimeSpan(16, 0, 0); var date2 = new DateTime(2017, 10, 1); BlogPostPublished p2 = new BlogPostPublished { BlogPostTemplateId = 19 }; p2.TimeOfDayPublished = time2; p2.DatePublished = date2; var update = p1.UpdatePost(p2); Assert.IsTrue(update); Assert.AreEqual(p1.TimeOfDayPublished, time2); Assert.AreEqual(p1.DatePublished, date2); }
private static IQueryable <BlogPostPublished> GenerateDoublePosts() { List <BlogPostPublished> posts = new List <BlogPostPublished>(); for (int i = 1; i < 10; i++) { BlogPostPublished p1 = new BlogPostPublished { PageTitle = $"Post Title No {i} - 1", FullContent = $"Sample Content for post no {i} - 1", DatePublished = new DateTime(2018, i, i), TimeOfDayPublished = new TimeSpan(i, 0, 0) }; BlogPostPublished p2 = new BlogPostPublished { PageTitle = $"Post Title No {i} - 2", FullContent = $"Sample Content for post no {i} - 2", DatePublished = new DateTime(2018, i, i + 10), TimeOfDayPublished = new TimeSpan(i, 0, 0) }; posts.Add(p1); posts.Add(p2); } return(posts.AsQueryable()); }
private BlogPostPublished InValidPostFactory() { var post = new BlogPostPublished(); post.PageTitle = null; post.FullContent = "something"; return(post); }
///<summary>Tries to add to the bucket. ///Returns true if it matches with the model and addition was successful. False if not</summary> public bool TryAddPost(BlogPostPublished post) { if (Month == post.DatePublished.Month && FullYear == post.DatePublished.Year) { Posts.Add(post); return(true); } return(false); }
public IActionResult PreviewDraft(int draftId) { var post = new BlogPostPublished(); var draft = blogRepository.GetDraftById(draftId); post.PublishDraftToPost(draft); BlogPostViewModel postModel = new BlogPostViewModel { Post = post }; return(View("BlogPost", postModel)); }
public void SavePublishedPost_IdZeroAndUrlAlreadyExists_ReturnsFalse() { EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); BlogPostPublished published = new BlogPostPublished { BlogPostTemplateId = 0, FullContent = "Whatever", PageTitle = "Post Title No 4" }; var shouldBeFalse = repo.SavePublishedPost(published); Assert.IsFalse(shouldBeFalse); }
public void SavePublishedPost_SaveExistingPost_CountIsSame() { EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); var countBefore = repo.Posts.Count(); BlogPostPublished repoPost = repo.Posts .Where(p => p.PageTitle.ToLower() == "post title no 4").FirstOrDefault(); int id = repoPost.BlogPostTemplateId; repoPost.PageTitle = "A Completely New Page Title"; repoPost.FullContent = "some completely new content"; repo.SavePublishedPost(repoPost); Assert.AreEqual(countBefore, repo.Posts.Count()); }
public void GetPostById_IdDoesNotExist_ReturnsNull() { var published = new BlogPostPublished { PageTitle = "temp", BlogPostTemplateId = 15000 }; SharedDbContext.Posts.Add(published); SharedDbContext.SaveChanges(); EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); var post = repo.GetPostById(15005); Assert.IsNull(post); }
public void SavePublishedPost_ZeroId_AddsNewPost() { EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); BlogPostPublished published = new BlogPostPublished { BlogPostTemplateId = 0, FullContent = "some new full content for this test", PageTitle = "A Test Page Title" }; var countBefore = repo.Posts.Count(); repo.SavePublishedPost(published); Assert.IsTrue(repo.Posts.Count() > countBefore); }
public void SavePublishedPost_IdZeroAndUrlAlreadyExists_CountIsSame() { EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); BlogPostPublished published = new BlogPostPublished { BlogPostTemplateId = 0, FullContent = "Whatever", PageTitle = "Post Title No 7" }; var countBefore = repo.Posts.Count(); repo.SavePublishedPost(published); Assert.AreEqual(countBefore, repo.Posts.Count()); }
public void UnPublishPostById_ValidPost_CallsUnPublish() { var mockRepo = Substitute.For <IBlogPostRepository>(); var fakePost = new BlogPostPublished { PageTitle = "Fake Title", FullContent = "Some Full Content" }; mockRepo.GetPostById(10).Returns(fakePost); var controller = new AdminController(mockRepo); controller.TempData = Substitute.For <ITempDataDictionary>(); var result = controller.UnPublishPostById(10); mockRepo.Received().UnPublishPostToDraft(fakePost); }
public void TryAddPost_NotMatching_ReturnsFalse() { BlogPostPublished first = new BlogPostPublished { PageTitle = "Title", DatePublished = new DateTime(2017, 1, 1) }; BlogPostPublished second = new BlogPostPublished { PageTitle = "Title", DatePublished = new DateTime(2017, 3, 1) // different month }; MonthAndYearPostBucket bucket = new MonthAndYearPostBucket(first); Assert.IsFalse(bucket.TryAddPost(second)); }
private static IQueryable <BlogPostPublished> Generate10Posts() { List <BlogPostPublished> posts = new List <BlogPostPublished>(); for (int i = 1; i < 10; i++) { BlogPostPublished p = new BlogPostPublished { PageTitle = $"Post Title No {i}", FullContent = $"Sample Content for post no {i}", DatePublished = new DateTime(2018, i, i), TimeOfDayPublished = new TimeSpan(i, 0, 0) }; p.AddCategories("Cat" + i, "OtherCat"); posts.Add(p); } return(posts.AsQueryable()); }
public void TryAddPost_NotMatching_DoesntAdd() { BlogPostPublished first = new BlogPostPublished { PageTitle = "Title", DatePublished = new DateTime(2017, 1, 1) }; BlogPostPublished second = new BlogPostPublished { PageTitle = "Title", DatePublished = new DateTime(2017, 3, 1) // different month }; MonthAndYearPostBucket bucket = new MonthAndYearPostBucket(first); bucket.TryAddPost(second); Assert.IsTrue(bucket.Posts.Count == 1); Assert.IsTrue(bucket.Posts[0].DatePublished == new DateTime(2017, 1, 1)); }
public void UnPublishToDraft_RetainsValues() { string content = "Some Full Content"; string title = "Some Full Content"; BlogPostPublished post = new BlogPostPublished { FullContent = content, PageTitle = title, BlogPostTemplateId = 40 }; BlogPostDraft draft = new BlogPostDraft(); draft.UnPublishToDraft(post); Assert.AreEqual(draft.BlogPostTemplateId, 0); Assert.AreEqual(draft.FullContent, content); Assert.AreEqual(draft.PageTitle, title); }
public void SavePublishedPost_SaveExistingPost_ChangesRecorded() { EFBlogPostRepository repo = new EFBlogPostRepository(SharedDbContext); var countBefore = repo.Posts.Count(); BlogPostPublished repoPost = repo.Posts .Where(p => p.PageTitle.ToLower() == "post title no 4").FirstOrDefault(); int id = repoPost.BlogPostTemplateId; string newTitle = "A Completely New Page Title"; string newContent = "some completely new content"; repoPost.PageTitle = newTitle; repoPost.FullContent = newContent; repo.SavePublishedPost(repoPost); var newVals = repo.GetPostById(id); Assert.AreEqual(newTitle, newVals.PageTitle); Assert.AreEqual(newContent, newVals.FullContent); }
public void PublishDraftToPost_RetainsValues() { string title = "Some Example Title"; string content = "Some Example Full Content"; string author = "Steven Jobison"; var draft = new BlogPostDraft { PageTitle = title, Author = author, FullContent = content }; var post = new BlogPostPublished(); post.PublishDraftToPost(draft); Assert.AreEqual(title, post.PageTitle); Assert.AreEqual(content, post.FullContent); Assert.AreEqual(author, post.Author); }
public void UpdatePost_WrongId_DoesNotUpdateAndReturnsFalse() { BlogPostPublished p1 = new BlogPostPublished(); p1.BlogPostTemplateId = 26; p1.TimeOfDayPublished = new TimeSpan(5, 0, 0); p1.DatePublished = new DateTime(2017, 6, 1); BlogPostPublished p2 = new BlogPostPublished(); p2.BlogPostTemplateId = 19; var time2 = new TimeSpan(16, 0, 0); var date2 = new DateTime(2017, 10, 1); p2.TimeOfDayPublished = time2; p2.DatePublished = date2; var update = p1.UpdatePost(p2); Assert.IsFalse(update); Assert.AreNotEqual(p1.TimeOfDayPublished, time2); Assert.AreNotEqual(p1.DatePublished, date2); }
public MonthAndYearPostBucket(BlogPostPublished post) { Month = post.DatePublished.Month; FullYear = post.DatePublished.Year; TryAddPost(post); }