Example #1
0
        public void TagsNode_resolves_null_name_as_all_child_nodes()
        {
            // ARRANGE

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

            this.PersistenceMock
            .Setup(s => s.Tags)
            .Returns(this.tagsRepository.Object);

            this.tagsRepository
            .Setup(r => r.FindAll())
            .Returns(new[] { DefaultTag() });

            // ACT

            var result = new TagsNode()
                         .Resolve(this.ProviderContextMock.Object, null)
                         .ToArray();

            // ASSERT

            Assert.IsType <TagNode>(result.Single());
        }
Example #2
0
        public void TagsNode_resolves_unknown_tag_as_empty_enumerable()
        {
            // ARRANGE

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

            this.PersistenceMock
            .Setup(s => s.Tags)
            .Returns(this.tagsRepository.Object);

            this.tagsRepository // Tag name is unkown
            .Setup(r => r.FindByName("t"))
            .Returns((Tag?)null);

            // ACT

            var result = new TagsNode()
                         .Resolve(this.ProviderContextMock.Object, "t")
                         .ToArray();

            // ASSERT

            Assert.Empty(result);
        }
Example #3
0
        public void TagsNode_creates_Tag(string itemTypeName)
        {
            // ARRANGE

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

            this.PersistenceMock
            .Setup(m => m.Tags)
            .Returns(this.TagRepositoryMock.Object);

            this.TagRepositoryMock
            .Setup(r => r.Upsert(It.Is <Tag>(t => t.Name.Equals("t"))))
            .Returns <Tag>(t => t);

            // ACT

            var result = new TagsNode()
                         .NewItem(this.ProviderContextMock.Object, newItemChildPath: "t", itemTypeName: itemTypeName, newItemValue: null);

            // ASSERT

            Assert.IsType <TagNode>(result);
        }
Example #4
0
        public void TagsNode_retrieves_TagNode_by_name()
        {
            // ARRANGE

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

            this.PersistenceMock
            .Setup(s => s.Tags)
            .Returns(this.tagsRepository.Object);

            this.tagsRepository
            .Setup(r => r.FindByName("t"))
            .Returns(DefaultTag());

            // ACT

            var result = new TagsNode()
                         .Resolve(this.ProviderContextMock.Object, "t")
                         .ToArray();

            // ASSERT

            Assert.IsType <TagNode>(result.Single());
        }
Example #5
0
        public void TagNode_copies_itself_as_new_tag()
        {
            // ARRANGE

            var tag = DefaultTag(WithDefaultProperty);

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

            this.PersistenceMock
            .Setup(m => m.Tags)
            .Returns(this.TagRepositoryMock.Object);

            Tag?createdTag = null;

            this.TagRepositoryMock
            .Setup(r => r.Upsert(It.IsAny <Tag>()))
            .Callback <Tag>(t => createdTag = t)
            .Returns(tag);

            var tagsContainer = new TagsNode();

            // ACT

            new TagNode(tag)
            .CopyItem(this.ProviderContextMock.Object, "t", "tt", tagsContainer);

            // ASSERT

            Assert.Equal("tt", createdTag !.Name);
            Assert.Equal("p", createdTag !.Facet.Properties.Single().Name);
            Assert.Equal(tag.Facet.Properties.Single().Type, createdTag !.Facet.Properties.Single().Type);
        }
Example #6
0
        public void TagsNode_provides_NewItemTypeNames()
        {
            // ACT

            var result = new TagsNode().NewItemTypeNames;

            // ASSERT

            Assert.Equal("Tag".Yield(), result);
        }
Example #7
0
        public void TagsNode_provides_Name_and_IsContainer()
        {
            // ACT

            var result = new TagsNode();

            // ASSERT

            Assert.Equal("Tags", result.Name);
            Assert.True(result.IsContainer);
        }
Example #8
0
        public void TagsNodeValue_provides_Item()
        {
            // ACT

            var result = new TagsNode().GetItem(this.ProviderContextMock.Object);

            // ASSERT

            Assert.IsType <TagsNode.Item>(result.ImmediateBaseObject);

            var resultValue = (TagsNode.Item)result.ImmediateBaseObject;

            Assert.Equal("Tags", resultValue.Name);
        }
Example #9
0
        public void TagNode_renaming_rejects_invalid_characters(char invalidChar)
        {
            // ARRANGE

            var tag           = DefaultTag(WithDefaultProperty);
            var invalidName   = new string("t".ToCharArray().Append(invalidChar).ToArray());
            var tagsContainer = new TagsNode();

            // ACT

            var result = Assert.Throws <InvalidOperationException>(() => new TagNode(tag)
                                                                   .RenameItem(this.ProviderContextMock.Object, "t", invalidName));

            // ASSERT

            Assert.Equal($"tag(name='{invalidName}' wasn't created: it contains invalid characters", result.Message);
        }
Example #10
0
        public void FacetPropertyNode_copying_rejects_invalid_characters(char invalidChar)
        {
            // ARRANGE

            var tag           = DefaultTag(WithDefaultProperty);
            var invalidName   = new string("p".ToCharArray().Append(invalidChar).ToArray());
            var tagsContainer = new TagsNode();

            // ACT

            var result = Assert.Throws <InvalidOperationException>(() => new FacetPropertyNode(tag, tag.Facet.Properties.First())
                                                                   .CopyItem(this.ProviderContextMock.Object, "p", invalidName, Mock.Of <PathNode>()));

            // ASSERT

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