public void OrderShouldBeFilesThenDirectores()
        {
            using (var t = new TempDirectory())
            {
                t.CreateDir("b");
                t.CreateDir("a");
                t.CreateFile("b\\b.txt");
                t.CreateFile("b\\a.txt");
                t.CreateFile("a\\b.txt");
                t.CreateFile("a\\a.txt");
                t.CreateFile("z.txt");
                t.CreateFile("y.txt");
                t.CreateFile("x.txt");
                var scan = FilesystemScanner.Scan(t.FullPath + Path.DirectorySeparatorChar).ToArray();

                Assert.AreEqual("x.txt", scan[0].RelativePath); // files first
                Assert.AreEqual("y.txt", scan[1].RelativePath);
                Assert.AreEqual("z.txt", scan[2].RelativePath);
                Assert.AreEqual("a", scan[3].RelativePath); // then all of directory 'a'
                Assert.AreEqual("a\\a.txt", scan[4].RelativePath);
                Assert.AreEqual("a\\b.txt", scan[5].RelativePath);
                Assert.AreEqual("b", scan[6].RelativePath); // then all of directory 'b'
                Assert.AreEqual("b\\a.txt", scan[7].RelativePath);
                Assert.AreEqual("b\\b.txt", scan[8].RelativePath);
            }
        }