示例#1
0
        public void EntityNode_copying_rejects_invalid_name_chararcters(char invalidChar)
        {
            // ARRANGE

            var entity          = DefaultEntity(WithAssignedDefaultTag, WithEntityCategory(DefaultCategory()));
            var entityContainer = new EntitiesNode();
            var invalidName     = new string("p".ToCharArray().Append(invalidChar).ToArray());
            var node            = new EntityNode(entity);

            // ACT

            var result = Assert.Throws <InvalidOperationException>(() => node.CopyItem(this.ProviderContextMock.Object, "e", invalidName, entityContainer));

            // ASSERT

            Assert.Equal($"entity(name='{invalidName}' wasn't copied: it contains invalid characters", result.Message);
        }
示例#2
0
        public void EntityNode_copying_rejects_category_if_entity_name_already_exists(string initialName, string destinationName, string resultName)
        {
            // ARRANGE

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

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

            var c = DefaultCategory();

            this.CategoryRepositoryMock
            .Setup(r => r.FindById(c.Id))
            .Returns(c);

            this.CategoryRepositoryMock
            .Setup(r => r.FindByParentAndName(c, resultName))
            .Returns((Category?)null);

            this.PersistenceMock
            .Setup(p => p.Entities)
            .Returns(this.EntityRepositoryMock.Object);

            this.EntityRepositoryMock
            .Setup(r => r.FindByCategoryAndName(c, resultName))
            .Returns(DefaultEntity(e => e.Name = resultName));

            var categoryNode = new CategoryNode(c);
            var e            = DefaultEntity(e => e.Name = initialName);
            var node         = new EntityNode(e);

            // ACT

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

            // ASSERT

            Assert.Equal($"Destination container contains already an entity with name '{resultName}'", result.Message);
        }