public void GetLeavesForLeaf()
        {
            var flattened = new StartingLanesFlatBuilder().GetLeaves(GetRootLanes(), "DYN/Hobbies/B");
            var ids       = flattened.Select(f => f.StartingLaneId).ToArray();
            var fullnames = flattened.Select(f => f.FullName).ToArray();

            Assert.That(ids, Is.EqualTo(new String[] { "DYN/Hobbies/B" }));
            Assert.That(fullnames, Is.EqualTo(new String[] { "" }));
        }
        public void GetLeavesForRootLane()
        {
            var flattened = new StartingLanesFlatBuilder().GetLeaves(GetRootLanes(), "STA");
            var ids       = flattened.Select(f => f.StartingLaneId).ToArray();
            var fullnames = flattened.Select(f => f.FullName).ToArray();

            Assert.That(ids, Is.EqualTo(new String[] {
                "STA/ME/A", "STA/ME/B", "STA/Hobbies/A", "STA/Hobbies/B", "STA/Elite/A", "STA/Elite/B",
            }));
            Assert.That(fullnames, Is.EqualTo(new String[] {
                "ME A", "ME B", "Hobbies A", "Hobbies B", "Elite A", "Elite B",
            }));
        }
        public void GetLeavesNull()
        {
            var flattened = new StartingLanesFlatBuilder().GetLeaves(GetRootLanes(), null);
            var ids       = flattened.Select(f => f.StartingLaneId).ToArray();
            var fullnames = flattened.Select(f => f.FullName).ToArray();

            Assert.That(ids, Is.EqualTo(new String[] {
                "STA/ME/A", "STA/ME/B", "STA/Hobbies/A", "STA/Hobbies/B", "STA/Elite/A", "STA/Elite/B",
                "DYN/ME/A", "DYN/ME/B", "DYN/Hobbies/A", "DYN/Hobbies/B", "DYN/Elite/A", "DYN/Elite/B",
                "CWT/ME/A", "CWT/ME/B", "CWT/Hobbies/A", "CWT/Hobbies/B", "CWT/Elite/A", "CWT/Elite/B",
            }));
            Assert.That(fullnames, Is.EqualTo(new String[] {
                "STA ME A", "STA ME B", "STA Hobbies A", "STA Hobbies B", "STA Elite A", "STA Elite B",
                "DYN ME A", "DYN ME B", "DYN Hobbies A", "DYN Hobbies B", "DYN Elite A", "DYN Elite B",
                "CWT ME A", "CWT ME B", "CWT Hobbies A", "CWT Hobbies B", "CWT Elite A", "CWT Elite B",
            }));
        }