public void CategoryNode_retrieves_categories_and_entities_as_childnodes() { // ARRANGE var subcategory = DefaultCategory(c => c.Name = "cc"); var category = DefaultCategory(WithSubCategory(subcategory)); var entity = DefaultEntity(e => e.Category = category); this.ProviderContextMock .Setup(c => c.Persistence) .Returns(this.PersistenceMock.Object); this.PersistenceMock .Setup(p => p.Categories) .Returns(this.CategoryRepositoryMock.Object); this.CategoryRepositoryMock .Setup(p => p.FindByParent(category)) .Returns(subcategory.Yield()); this.PersistenceMock .Setup(p => p.Entities) .Returns(this.EntityRepositoryMock.Object); this.EntityRepositoryMock .Setup(r => r.FindByCategory(category)) .Returns(entity.Yield()); var node = new CategoryNode(category); // ACT var result = node.GetChildNodes(this.ProviderContextMock.Object).ToArray(); // ASSERT Assert.Equal(2, result.Length); }