public void UpdatePost_WrongId_ReturnsFalseAndDoesNotUpdate()
        {
            BlogPostTemplate t1 = new FakeBlogPostTemplateSubClass();

            t1.BlogPostTemplateId     = 5;
            t1.Author                 = "Nick";
            t1.FullContent            = "Some Content";
            t1.PageTitle              = "A Page Title";
            t1.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            BlogPostTemplate t2 = new FakeBlogPostTemplateSubClass();

            t2.BlogPostTemplateId = 15; // wrong id
            t2.Author             = "Nick2";
            t2.FullContent        = "Some Content 2";
            t2.PageTitle          = "A Page Title 2";
            var catTwos = "Cat12,Cat22,Cat32";

            t2.CategoriesDbCollection = catTwos;

            var update = t1.UpdatePost(t2);

            Assert.IsFalse(update);

            Assert.AreEqual(t1.BlogPostTemplateId, 5);
            Assert.AreNotEqual(t1.Author, "Nick2");
            Assert.AreNotEqual(t1.FullContent, "Some Content 2");
            Assert.AreNotEqual(t1.PageTitle, "A Page Title 2");
            Assert.AreNotEqual(t1.Categories, new List <string> {
                "Cat12", "Cat22", "Cat32"
            });
        }
        public void UpdatePost_UpdatesAllFields()
        {
            BlogPostTemplate t1 = new FakeBlogPostTemplateSubClass();

            t1.BlogPostTemplateId     = 5;
            t1.Author                 = "Nick";
            t1.FullContent            = "Some Content";
            t1.PageTitle              = "A Page Title";
            t1.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            BlogPostTemplate t2 = new FakeBlogPostTemplateSubClass();

            t2.BlogPostTemplateId = 5;
            t2.Author             = "Nick2";
            t2.FullContent        = "Some Content 2";
            t2.PageTitle          = "A Page Title 2";
            var catTwos = "Cat12,Cat22,Cat32";

            t2.CategoriesDbCollection = catTwos;
            var update = t1.UpdatePost(t2);

            Assert.IsTrue(update);

            Assert.AreEqual(t1.BlogPostTemplateId, 5);
            Assert.AreEqual(t1.Author, "Nick2");
            Assert.AreEqual(t1.FullContent, "Some Content 2");
            Assert.AreEqual(t1.PageTitle, "A Page Title 2");
            Assert.AreEqual(t1.Categories, new List <string> {
                "Cat12", "Cat22", "Cat32"
            });
        }
        public void RemoveCategory_Exists_Removes()
        {
            BlogPostTemplate t = new FakeBlogPostTemplateSubClass();

            t.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            t.RemoveCategory("Cat1");
            Assert.AreEqual(t.Categories.Count, 2);
            Assert.IsFalse(t.Categories.Contains("Cat1"));
        }
        public void AddCategory_CatAlreadyExists_DoesntAdd()
        {
            BlogPostTemplate t = new FakeBlogPostTemplateSubClass();

            t.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            t.AddCategory("Cat1");

            Assert.AreEqual(t.Categories.Count, 3);
        }
        public void AddCategory_CatDoesntExist_Adds()
        {
            BlogPostTemplate t = new FakeBlogPostTemplateSubClass();

            t.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            t.AddCategory("Cat4");

            Assert.AreEqual(t.Categories.Count, 4);
            Assert.Contains("Cat4", t.Categories);
        }
        public void AddCategories_DontExist_AddsAll()
        {
            BlogPostTemplate t = new FakeBlogPostTemplateSubClass();

            t.CategoriesDbCollection = "Cat1,Cat2,Cat3";

            t.AddCategories("Cat4", "Cat5", "Cat8");

            Assert.AreEqual(t.Categories.Count, 6);
            Assert.Contains("Cat4", t.Categories);
            Assert.Contains("Cat5", t.Categories);
            Assert.Contains("Cat8", t.Categories);
        }