Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }