public void SetUp()
        {
            directoryEnumerator = new DirectoryEnumerator();
            temporaryDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + "\\");
            Directory.CreateDirectory(temporaryDirectory);

            f1 = Path.GetRandomFileName() + ".js";
            f2 = Path.GetRandomFileName() + ".js";
            f3 = Path.GetRandomFileName() + ".css";
            f4 = Path.GetRandomFileName() + ".css";
            f5 = Path.GetRandomFileName() + "-vsdoc.js";

            File.CreateText(temporaryDirectory + f1).Dispose();
            File.CreateText(temporaryDirectory + f2).Dispose();
            File.CreateText(temporaryDirectory + f3).Dispose();
            File.CreateText(temporaryDirectory + f4).Dispose();
            File.CreateText(temporaryDirectory + f5).Dispose();

            var sw = new StreamWriter(temporaryDirectory + "ordering.txt", false, System.Text.Encoding.UTF8);
            sw.WriteLine(f1);
            sw.WriteLine(f2);
            sw.WriteLine(f3);
            sw.WriteLine(f4);
            sw.WriteLine(f5);
            sw.WriteLine("ordering.txt");
            sw.Dispose();
        }
        public void CanOrderFilesInDirectory()
        {
            var temporaryDirectory = CreateNewTemporaryDirectory();
            try
            {
                for (int i = 0; i < 4; i++)
                {
                    string fileName = Path.Combine(temporaryDirectory, String.Format("File{0}.js", (1 + i)));
                    File.CreateText(fileName).Dispose();
                }
                using (var ordering = File.CreateText(Path.Combine(temporaryDirectory, "ordering.txt")))
                {
                    ordering.WriteLine("File3.js");
                    ordering.WriteLine("File4.js");
                    ordering.WriteLine("File1.js");
                    ordering.WriteLine("File2.js");
                }

                var directoryEnumerator = new DirectoryEnumerator();
                var result = directoryEnumerator.GetFiles(temporaryDirectory).ToList();

                var expectedList = new List<string>
                {
                    Path.Combine(temporaryDirectory, "File3.js"),
                    Path.Combine(temporaryDirectory, "File4.js"),
                    Path.Combine(temporaryDirectory, "File1.js"),
                    Path.Combine(temporaryDirectory, "File2.js")
                };
                CollectionAssert.AreEqual(expectedList, result, StringComparer.OrdinalIgnoreCase);
            }
            finally
            {
                System.IO.Directory.Delete(temporaryDirectory, true);
            }
        }
        public void EnumerationSkipsVsDocFiles()
        {
            var temporaryDirectory = CreateNewTemporaryDirectory();
            try
            {
                CreateJsFileWithRandomName(temporaryDirectory);
                CreateJsFileWithRandomNameAndSuffix(temporaryDirectory, "-vsdoc");

                var directoryEnumerator = new DirectoryEnumerator();
                var result = directoryEnumerator.GetFiles(temporaryDirectory).ToList();

                Assert.AreEqual(1, result.Count);
            }
            finally
            {
                System.IO.Directory.Delete(temporaryDirectory, true);
            }
        }
        public void CanEnumerateDirectory()
        {
            var temporaryDirectory = CreateNewTemporaryDirectory();
            try
            {
                for (int i = 0; i < 3; i++)
                {
                    CreateJsFileWithRandomName(temporaryDirectory);
                }

                var directoryEnumerator = new DirectoryEnumerator();
                var result = directoryEnumerator.GetFiles(temporaryDirectory).ToList();

                Assert.AreEqual(3, result.Count);
            }
            finally
            {
                System.IO.Directory.Delete(temporaryDirectory, true);
            }
        }
        public void CanEnumerateDirectory()
        {
            var temporaryDirectory = Path.GetTempPath() + "\\" + Path.GetRandomFileName() + "\\";
            System.IO.Directory.CreateDirectory(temporaryDirectory);
            try
            {
                for (int i = 0; i < 3; i++)
                {
                    File.CreateText(temporaryDirectory + Path.GetRandomFileName() + ".js").Dispose();
                }

                var directoryEnumerator = new DirectoryEnumerator();
                var temporaryFiles = directoryEnumerator.GetFiles(temporaryDirectory).ToList();
                Assert.AreEqual(3, temporaryFiles.Count);
            }
            finally
            {
                System.IO.Directory.Delete(temporaryDirectory, true);
            }
        }