Exemple #1
0
        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);
        }
Exemple #4
0
 ///<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);
 }
Exemple #5
0
        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);
        }
Exemple #12
0
        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));
        }
Exemple #13
0
        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());
        }
Exemple #14
0
        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));
        }
Exemple #15
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
        }
Exemple #19
0
 public MonthAndYearPostBucket(BlogPostPublished post)
 {
     Month    = post.DatePublished.Month;
     FullYear = post.DatePublished.Year;
     TryAddPost(post);
 }