public void ExtractFolder() { EngineState s = EngineTests.CreateEngineState(); void Template(string folderName) { string pbOriginScript = Path.Combine("%TestBench%", "EncodedFile", "ExtractFileTests.script"); string originScript = StringEscaper.Preprocess(s, pbOriginScript); string destDir = FileHelper.GetTempDir(); try { Script sc = s.Project.LoadScriptRuntime(originScript, new LoadScriptRuntimeOptions()); EncodedFile.ExtractFolder(sc, folderName, destDir); string[] comps = IniReadWriter.ParseIniLinesIniStyle(sc.Sections[folderName].Lines).Keys.ToArray(); string[] dests = Directory.EnumerateFiles(destDir).Select(Path.GetFileName).ToArray(); Assert.IsTrue(comps.SequenceEqual(dests, StringComparer.OrdinalIgnoreCase)); } finally { if (Directory.Exists(destDir)) { Directory.Delete(destDir, true); } } } Template("FolderExample"); }