public static async Task Provision_recursive_dir_in() { var directory = new DirectoryBuilder("root"); directory.Directory("out"); var cfg = directory.Directory("cfg"); var src = directory.Directory("src"); var lib = src.Directory("lib").Directory("config"); directory.TextFile("package.json").Code.Append("{ \"private\": true }"); cfg.TextFile("config.ini").Code.Append("SOME_CONFIG = 'SOME VALUE'"); src.TextFile("index.js").Code.Append("require('config').getFromFile('./config.txt').log('SOME_CONFIG')"); lib.TextFile("config.js").Code.Append("// Test."); await directory.ProvisionInAsync(Tmp); AssertDirectory("root", 4); AssertDirectory(Path.Join("root", "cfg"), 1); AssertDirectory(Path.Join("root", "src"), 2); AssertDirectory(Path.Join("root", "src", "lib"), 1); AssertDirectory(Path.Join("root", "src", "lib", "config"), 1); AssertDirectory(Path.Join("root", "out"), 0); AssertFile(Path.Join("root", "package.json"), "{ \"private\": true }"); AssertFile(Path.Join("root", "cfg", "config.ini"), "SOME_CONFIG = 'SOME VALUE'"); AssertFile(Path.Join("root", "src", "index.js"), "require('config').getFromFile('./config.txt').log('SOME_CONFIG')"); AssertFile(Path.Join("root", "src", "lib", "config", "config.js"), "// Test."); }