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()); }
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); }
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); }
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()); }
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); }
public void TagsNode_provides_NewItemTypeNames() { // ACT var result = new TagsNode().NewItemTypeNames; // ASSERT Assert.Equal("Tag".Yield(), result); }
public void TagsNode_provides_Name_and_IsContainer() { // ACT var result = new TagsNode(); // ASSERT Assert.Equal("Tags", result.Name); Assert.True(result.IsContainer); }
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); }
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); }
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); }