示例#1
0
        public void CategoryNode_copying_fails_if_category_name_already_exists(string initialName, string destinationName, string resultName)
        {
            // ARRANGE

            this.ArrangeSubCategory(out var rootCategory, out var subCategory);

            this.CategoryRepositoryMock
            .Setup(r => r.Root())
            .Returns(rootCategory);

            this.ProviderContextMock
            .Setup(p => p.Persistence)
            .Returns(this.PersistenceMock.Object);

            this.PersistenceMock
            .Setup(p => p.Categories)
            .Returns(this.CategoryRepositoryMock.Object);

            this.CategoryRepositoryMock
            .Setup(r => r.FindByParentAndName(rootCategory, resultName))
            .Returns(DefaultCategory());

            var entitiesNode = new EntitiesNode();
            var category     = DefaultCategory(c => subCategory.AddSubCategory(c));
            var node         = new CategoryNode(category);

            // ACT

            var result = Assert.Throws <InvalidOperationException>(
                () => node.CopyItem(this.ProviderContextMock.Object, initialName, destinationName, entitiesNode));

            // ASSERTS

            Assert.Equal($"Destination container contains already a category with name '{resultName}'", result.Message);
        }
示例#2
0
        public void CategoryNode_copying_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.CopyItem(this.ProviderContextMock.Object, "c", invalidName, entitiesNode));

            // ASSERT

            Assert.Equal($"category(name='{invalidName}' wasn't created: it contains invalid characters", result.Message);
        }