public void FindChildren_NoChildren_ReturnsEmpty()
        {
            // Arrange
            var treeContext = new DbTreeContext();
            var parentId    = Guid.NewGuid();

            TreeNode[] expectedNodes =
            {
                new TreeNode
                {
                    Id       = Guid.NewGuid(),
                    ParentId = parentId
                },
                new TreeNode
                {
                    Id       = Guid.NewGuid(),
                    ParentId = parentId
                }
            };
            treeContext.Tree.Add(expectedNodes[0].Id, expectedNodes[0]);
            treeContext.Tree.Add(expectedNodes[1].Id, expectedNodes[1]);
            var dbTreeRepository = new DbTreeRepository(treeContext);

            // Act
            IEnumerable <TreeNode> nodes = dbTreeRepository.FindChildren(Guid.NewGuid());

            // Assert
            Assert.That(nodes, Is.Empty);
        }
        public void FindChildren_ParentIdIsNull_ReturnsRoot()
        {
            // Arrange
            var treeContext = new DbTreeContext();
            var root        = new TreeNode
            {
                Id = Guid.NewGuid()
            };
            var node = new TreeNode
            {
                Id       = Guid.NewGuid(),
                ParentId = Guid.NewGuid()
            };

            treeContext.Tree.Add(root.Id, root);
            treeContext.Tree.Add(node.Id, node);
            var dbTreeRepository = new DbTreeRepository(treeContext);

            // Act
            IEnumerable <TreeNode> nodes = dbTreeRepository.FindChildren(null);

            // Assert
            Assert.That(nodes, Is.EquivalentTo(new[] { root }));
        }