public void ValidateBreadthFirstForEachSingleRoot()
        {
            var rootTreeNode = new TreeNode(1,
                new List<TreeNode>()
                {
                    new TreeNode(2,
                        new List<TreeNode>()
                        {
                            new TreeNode(5),
                            new TreeNode(6),
                            new TreeNode(7)
                        }),
                    new TreeNode(3,
                        new List<TreeNode>()
                        {
                            new TreeNode(8),
                            new TreeNode(9),
                            new TreeNode(10)
                        }),
                    new TreeNode(4,
                        new List<TreeNode>()
                        {
                            new TreeNode(11),
                            new TreeNode(12),
                            new TreeNode(13)
                        }),
                });

            var results = new List<int>();
            rootTreeNode.ForEach(TraversalType.BreadthFirst, i => i.ChildItems, i => results.Add(i.Index));

            CollectionAssert.AreEqual(Enumerable.Range(1, 13), results);
        }