public void CategoryNode_resolves_child_name_as_Category(string name) { // ARRANGE var subCategory = DefaultCategory(c => c.Name = "cc"); var category = DefaultCategory(WithSubCategory(subCategory)); this.ProviderContextMock .Setup(p => p.Persistence) .Returns(this.PersistenceMock.Object); this.PersistenceMock .Setup(p => p.Entities) .Returns(this.EntityRepositoryMock.Object); this.PersistenceMock .Setup(p => p.Categories) .Returns(this.CategoryRepositoryMock.Object); this.CategoryRepositoryMock .Setup(r => r.FindByParentAndName(category, name)) .Returns(subCategory); this.EntityRepositoryMock .Setup(r => r.FindByCategoryAndName(category, name)) .Returns((Entity?)null); var node = new CategoryNode(category); // ACT var result = node.Resolve(this.ProviderContextMock.Object, name).Single(); // ASSERT Assert.Equal(subCategory.Id, ((CategoryNode.Item)result.GetItem(this.ProviderContextMock.Object).ImmediateBaseObject).Id); }