public void CategoryNode_renaming_rejects_duplicate_category_name(string existingName) { // ARRANGE var category = DefaultCategory(c => c.Name = "c"); var duplicateCategory = DefaultCategory(c => c.Name = existingName); var parentCategory = DefaultCategory( WithSubCategory(category), WithSubCategory(duplicateCategory)); this.ProviderContextMock .Setup(c => c.Persistence) .Returns(this.PersistenceMock.Object); this.PersistenceMock .Setup(p => p.Categories) .Returns(this.CategoryRepositoryMock.Object); this.CategoryRepositoryMock .Setup(r => r.FindByParentAndName(parentCategory, existingName)) .Returns(duplicateCategory); var categoryNode = new CategoryNode(category); // ACT categoryNode.RenameItem(this.ProviderContextMock.Object, "c", existingName); // ASSERT Assert.Equal("c", category.Name); }
public void CategoryNode_renaming_rejects_invalid_name_chararcters(char invalidChar) { // ARRANGE var category = DefaultCategory(c => c.Name = "c"); var invalidName = new string("p".ToCharArray().Append(invalidChar).ToArray()); var entitiesNode = new EntitiesNode(); var node = new CategoryNode(category); // ACT var result = Assert.Throws <InvalidOperationException>(() => node.RenameItem(this.ProviderContextMock.Object, "c", invalidName)); // ASSERT Assert.Equal($"category(name='{invalidName}' wasn't renamed: it contains invalid characters", result.Message); }
public void CategoryNode_renames_itself() { // ARRANGE var category = DefaultCategory(); var parentCategory = DefaultCategory(WithSubCategory(category)); this.ProviderContextMock .Setup(c => c.Persistence) .Returns(this.PersistenceMock.Object); this.PersistenceMock .Setup(m => m.Categories) .Returns(this.CategoryRepositoryMock.Object); Category?renamedCategory = null; this.CategoryRepositoryMock .Setup(r => r.Upsert(It.IsAny <Category>())) .Callback <Category>(c => renamedCategory = c) .Returns(category); this.CategoryRepositoryMock .Setup(r => r.FindByParentAndName(parentCategory, "cc")) .Returns((Category)null); this.PersistenceMock .Setup(p => p.Entities) .Returns(this.EntityRepositoryMock.Object); this.EntityRepositoryMock .Setup(p => p.FindByCategoryAndName(parentCategory, "cc")) .Returns((Entity?)null); var categoryNode = new CategoryNode(category); // ACT categoryNode.RenameItem(this.ProviderContextMock.Object, "c", "cc"); // ASSERT Assert.Equal("cc", renamedCategory !.Name); }