public void Delete(Category category) { var forums = _forumRepository.GetAll().Where(f => f.CategoryID == category.CategoryID); foreach (var forum in forums) _forumRepository.UpdateCategoryAssociation(forum.ForumID, null); _categoryRepository.Delete(category.CategoryID); }
public void Delete() { var service = GetService(); var cat = new Category(123); service.Delete(cat); _mockCategoryRepo.Verify(c => c.Delete(cat.CategoryID), Times.Once()); }
public Category Get(int categoryID) { Category category = null; _sqlObjectFactory.GetConnection().Using(c => c.Command("SELECT CategoryID, Title, SortOrder FROM pf_Category WHERE CategoryID = @CategoryID") .AddParameter("@CategoryID", categoryID) .ExecuteReader() .ReadOne(r => category = new Category(r.GetInt32(0)) { Title = r.GetString(1), SortOrder = r.GetInt32(2) })); return category; }
public Category Create(string newTitle, int sortOrder) { var categoryID = 0; _sqlObjectFactory.GetConnection().Using(c => categoryID = Convert.ToInt32(c.Command("INSERT INTO pf_Category (Title, SortOrder) VALUES (@Title, @SortOrder)") .AddParameter("@Title", newTitle) .AddParameter("@SortOrder", sortOrder) .ExecuteAndReturnIdentity())); var category = new Category(categoryID) { Title = newTitle, SortOrder = sortOrder }; return category; }
public void Update(Category category) { var result = 0; _sqlObjectFactory.GetConnection().Using(c => result = c.Command("UPDATE pf_Category SET Title = @Title, SortOrder = @SortOrder WHERE CategoryID = @CategoryID") .AddParameter("@Title", category.Title) .AddParameter("@SortOrder", category.SortOrder) .AddParameter("@CategoryID", category.CategoryID) .ExecuteNonQuery()); if (result != 1) throw new Exception(String.Format("Can't update category with ID {0} because it does not exist.", category.CategoryID)); }
private void ChangeCategorySortOrder(Category category, int change) { var categories = GetAll(); if (category != null) categories.Single(c => c.CategoryID == category.CategoryID).SortOrder += change; var sorted = categories.OrderBy(c => c.SortOrder).ToList(); for (var i = 0; i < sorted.Count; i++) { sorted[i].SortOrder = i * 2; _categoryRepository.Update(sorted[i]); } }
public void AllCollectionsPersist() { var c1 = new Category(1); var c2 = new Category(2); var f1 = new Forum(1) { CategoryID = null }; var f2 = new Forum(2) { CategoryID = 1 }; var f3 = new Forum(3) { CategoryID = 2 }; var cats = new List<Category> { c1, c2 }; var forums = new List<Forum> { f1, f2, f3 }; var container = new CategorizedForumContainer(cats, forums); Assert.AreEqual(cats, container.AllCategories); Assert.AreEqual(forums, container.AllForums); }
public void DeleteResetsForumCatIDsToNull() { var service = GetService(); var cat = new Category(123); var f1 = new Forum(1) { CategoryID = cat.CategoryID }; var f2 = new Forum(2) { CategoryID = cat.CategoryID }; var f3 = new Forum(3) { CategoryID = 456 }; var forums = new List<Forum> {f1, f2, f3}; _mockForumRepo.Setup(f => f.GetAll()).Returns(forums); service.Delete(cat); _mockForumRepo.Verify(f => f.UpdateCategoryAssociation(1, null), Times.Once()); _mockForumRepo.Verify(f => f.UpdateCategoryAssociation(2, null), Times.Once()); _mockForumRepo.Verify(f => f.UpdateCategoryAssociation(3, null), Times.Never()); }
public void ForumsAppearInCategories() { var c1 = new Category(1) { Title = "Cat1" }; var c2 = new Category(2) { Title = "Cat2" }; var f1 = new Forum(1) { CategoryID = null }; var f2 = new Forum(2) { CategoryID = 1 }; var f3 = new Forum(3) { CategoryID = 2 }; var cats = new List<Category> { c1, c2 }; var forums = new List<Forum> { f1, f2, f3 }; var container = new CategorizedForumContainer(cats, forums); Assert.True(container.CategoryDictionary[c1].Contains(f2)); Assert.True(container.CategoryDictionary[c2].Contains(f3)); Assert.False(container.CategoryDictionary[c1].Contains(f1)); Assert.False(container.CategoryDictionary[c1].Contains(f3)); }
public void CategoriesInCorrectOrder() { var c1 = new Category(1) { SortOrder = 5 }; var c2 = new Category(2) { SortOrder = 1 }; var c3 = new Category(3) { SortOrder = 3 }; var f1 = new Forum(1) { CategoryID = 1 }; var f2 = new Forum(2) { CategoryID = 2 }; var f3 = new Forum(3) { CategoryID = 3 }; var cats = new List<Category> {c1, c2, c3}; var forums = new List<Forum> {f1, f2, f3}; var container = new CategorizedForumContainer(cats, forums); Assert.True(container.CategoryDictionary.ToArray()[0].Key == c2); Assert.True(container.CategoryDictionary.ToArray()[1].Key == c3); Assert.True(container.CategoryDictionary.ToArray()[2].Key == c1); }
public void UncategorizedForumsShowUpOnProperty() { var c1 = new Category(1); var c2 = new Category(2); var f1 = new Forum(1) {CategoryID = null}; var f2 = new Forum(2) {CategoryID = 1}; var f3 = new Forum(3) {CategoryID = 2}; var f4 = new Forum(4) {CategoryID = 0}; var cats = new List<Category> {c1, c2}; var forums = new List<Forum> {f1, f2, f3, f4}; var container = new CategorizedForumContainer(cats, forums); Assert.True(container.UncategorizedForums.Contains(f1)); Assert.False(container.UncategorizedForums.Contains(f2)); Assert.False(container.UncategorizedForums.Contains(f3)); Assert.True(container.UncategorizedForums.Contains(f4)); }
public void Create() { const string newTitle = "new category"; var cat1 = new Category(123) { SortOrder = 0 }; var cat2 = new Category(456) { SortOrder = 2 }; var cat3 = new Category(789) { SortOrder = 4 }; var cat4 = new Category(1000) { SortOrder = 6 }; var newCat = new Category(999) {Title = newTitle, SortOrder = -2}; var cats = new List<Category> { cat1, cat2, cat3, cat4, newCat }; var service = GetService(); _mockCategoryRepo.Setup(c => c.GetAll()).Returns(cats); _mockCategoryRepo.Setup(c => c.Create(newTitle, -2)).Returns(newCat); var result = service.Create(newTitle); Assert.AreEqual(0, result.SortOrder); Assert.AreEqual(999, result.CategoryID); Assert.AreEqual(newTitle, result.Title); _mockCategoryRepo.Verify(c => c.Create(newTitle, -2), Times.Once()); Assert.AreEqual(0, newCat.SortOrder); Assert.AreEqual(2, cat1.SortOrder); Assert.AreEqual(4, cat2.SortOrder); Assert.AreEqual(6, cat3.SortOrder); Assert.AreEqual(8, cat4.SortOrder); }
public void MoveCategoryDown(Category category) { const int change = 3; ChangeCategorySortOrder(category, change); }
public void EditCategoryView() { var cat = new Category(123) { Title = "the cat", SortOrder = 2 }; var controller = GetController(); _catService.Setup(c => c.Get(cat.CategoryID)).Returns(cat); var result = controller.EditCategory(cat.CategoryID); _catService.Verify(c => c.Get(cat.CategoryID), Times.Once()); Assert.AreSame(cat, result.ViewData.Model); }
public void CategoryWithNoForumsDoesNotAppear() { var c1 = new Category(1) { Title = "Cat1" }; var c2 = new Category(2) { Title = "Cat2" }; var c3 = new Category(3) { Title = "Cat3" }; var f1 = new Forum(1) { CategoryID = null }; var f2 = new Forum(2) { CategoryID = 1 }; var f3 = new Forum(3) { CategoryID = 2 }; var cats = new List<Category> { c1, c2, c3 }; var forums = new List<Forum> { f1, f2, f3 }; var container = new CategorizedForumContainer(cats, forums); Assert.False(container.CategoryDictionary.ContainsKey(c3)); }
public void EditCategory() { var cat = new Category(123) { Title = "the cat", SortOrder = 2 }; var controller = GetController(); _catService.Setup(c => c.Get(cat.CategoryID)).Returns(cat); var result = controller.EditCategory(cat.CategoryID, "blah"); _catService.Verify(c => c.Get(cat.CategoryID), Times.Once()); _catService.Verify(c => c.UpdateTitle(cat, "blah"), Times.Once()); Assert.IsInstanceOf<RedirectToRouteResult>(result); }
public void MoveCategoryDown() { var cat = new Category(123) { Title = "the cat", SortOrder = 2 }; var controller = GetController(); _catService.Setup(c => c.Get(cat.CategoryID)).Returns(cat); controller.MoveCategoryDown(cat.CategoryID); _catService.Verify(c => c.MoveCategoryDown(cat), Times.Once()); }
public void UpdateTitle() { var savedCategory = new Category(789); var service = GetService(); var cat = new Category(123) { Title = "old", SortOrder = 456 }; _mockCategoryRepo.Setup(c => c.Update(cat)).Callback<Category>(category => savedCategory = category); service.UpdateTitle(cat, "new"); _mockCategoryRepo.Verify(c => c.Update(It.IsAny<Category>()), Times.Once()); Assert.AreEqual("new", savedCategory.Title); Assert.AreEqual(123, savedCategory.CategoryID); Assert.AreEqual(456, savedCategory.SortOrder); }
public void UpdateTitle(Category category, string newTitle) { category.Title = newTitle; _categoryRepository.Update(category); }
public void NewUp() { const int catID = 123; var cat = new Category(catID); Assert.AreEqual(catID, cat.CategoryID); }
public void MoveUp() { var cat1 = new Category(123) {SortOrder = 0}; var cat2 = new Category(456) {SortOrder = 2}; var cat3 = new Category(789) {SortOrder = 4}; var cat4 = new Category(1000) {SortOrder = 6}; var cats = new List<Category> { cat1, cat2, cat3, cat4 }; var service = GetService(); _mockCategoryRepo.Setup(c => c.GetAll()).Returns(cats); service.MoveCategoryUp(cat3); _mockCategoryRepo.Verify(c => c.GetAll(), Times.Once()); _mockCategoryRepo.Verify(c => c.Update(It.IsAny<Category>()), Times.Exactly(4)); _mockCategoryRepo.Verify(c => c.Update(cat1), Times.Once()); _mockCategoryRepo.Verify(c => c.Update(cat2), Times.Once()); _mockCategoryRepo.Verify(c => c.Update(cat3), Times.Once()); _mockCategoryRepo.Verify(c => c.Update(cat4), Times.Once()); Assert.AreEqual(0, cat1.SortOrder); Assert.AreEqual(2, cat3.SortOrder); Assert.AreEqual(4, cat2.SortOrder); Assert.AreEqual(6, cat4.SortOrder); }
public void DeleteCategory() { var cat = new Category(123) {Title = "the cat", SortOrder = 2}; var controller = GetController(); _catService.Setup(c => c.Get(cat.CategoryID)).Returns(cat); var result = controller.DeleteCategory(cat.CategoryID); _catService.Verify(c => c.Get(cat.CategoryID), Times.Once()); _catService.Verify(c => c.Delete(cat), Times.Once()); Assert.IsInstanceOf<RedirectToRouteResult>(result); Assert.AreEqual("Categories", result.RouteValues["Action"]); }