public void ShouldMatchExactlyFileName() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldNotAllowMultipleCrakefiles"); Directory.CreateDirectory(workspace.BasePath); File.Create(Path.Combine(workspace.BasePath, "crakefile")); File.Create(Path.Combine(workspace.BasePath, "cCrakefile")); workspace.LoadFiles(); Assert.AreEqual(1, workspace.Files.Count); }
public void ShouldLoadDefaultCrakefile() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldLoadDefaultCrakefile"); Directory.CreateDirectory(workspace.BasePath); File.Create(Path.Combine(workspace.BasePath, "crakefile")); workspace.LoadFiles(); Assert.AreEqual(1, workspace.Files.Count); Assert.AreEqual(Path.Combine(workspace.BasePath, "crakefile"), workspace.Files[0]); }
public void ShouldLoadFilesFromTasksSubDir() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldLoadFilesFromTasksDir"); Directory.CreateDirectory(workspace.BasePath); Directory.CreateDirectory(workspace.TasksDir); Directory.CreateDirectory(Path.Combine(workspace.TasksDir, "subdir")); File.Create(Path.Combine(workspace.TasksDir, "task1.crake")); File.Create(Path.Combine(Path.Combine(workspace.TasksDir, "subdir"), "task2.crake")); workspace.LoadFiles(); Assert.AreEqual(2, workspace.Files.Count); Assert.AreEqual(Path.Combine(workspace.TasksDir, "task1.crake"), workspace.Files[0]); Assert.AreEqual(Path.Combine(Path.Combine(workspace.TasksDir, "subdir"),"task2.crake"), workspace.Files[1]); }
public void ShouldCreateTasks() { Task.Tasks.Clear(); var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldCreateTasks"); Directory.CreateDirectory(workspace.TasksDir); var f = File.Create(Path.Combine(workspace.TasksDir, "task1.crake")); var buf = ASCIIEncoding.ASCII.GetBytes("namespace :name1 do\ntask :todo1 do\nint i;\nSay();\nSay();\nend\nend\n public void Say() {\nConsole.WriteLine(\"oi\");\n}"); f.Write(buf, 0, buf.Length); f.Close(); workspace.LoadFiles(); workspace.Parse(); workspace.Compile(); var linker = new Linker(workspace); Assert.AreEqual(0, Task.Tasks.Count); linker.CreateTasks(); Assert.AreEqual(1, Task.Tasks.Count); Task.Tasks["name1:todo1"].Run(); }
public void ShouldCompileNLines() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "Compile"); Directory.CreateDirectory(workspace.TasksDir); var f = File.Create(Path.Combine(workspace.TasksDir, "task1.crake")); var buf = ASCIIEncoding.ASCII.GetBytes("namespace :name1 do\ntask :todo1 do\nint i;\nSay();\nSay();\nend\nend\n public void Say() {\nConsole.WriteLine(\"oi\");\n}"); f.Write(buf, 0, buf.Length); f.Close(); workspace.LoadFiles(); workspace.Parse(); workspace.Compile(); var typeName = string.Format("Crake.Runtime.{0}", workspace.ParsedFiles[0].UniqueName); Type type = null; var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (var asm in loadedAssemblies) { type = asm.GetType(typeName); if (type != null) break; } Assert.IsNotNull(Assembly.GetAssembly(type)); }
public void ShouldNotFailWhenDefaultCrakefileNotExists() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldNotFailWhenDefaultCrakefileNotExists"); Directory.CreateDirectory(workspace.BasePath); workspace.LoadFiles(); Assert.AreEqual(0, workspace.Files.Count); }
public void ShouldNotAllowMultipleCrakefiles() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "ShouldNotAllowMultipleCrakefiles"); Directory.CreateDirectory(workspace.BasePath); File.Create(Path.Combine(workspace.BasePath, "crakefile")); if (File.Exists(Path.Combine(workspace.BasePath, "Crakefile"))){ Assert.Ignore("File System is not case sensitive."); return; } File.Create(Path.Combine(workspace.BasePath, "Crakefile")); workspace.LoadFiles(); }
public void ShouldParse() { var workspace = new Workspace(); workspace.BasePath = Path.Combine(basePath, "Parse"); Directory.CreateDirectory(workspace.TasksDir); var f = File.Create(Path.Combine(workspace.TasksDir, "parse.crake")); var buf = ASCIIEncoding.ASCII.GetBytes("namespace :name1 do\ntask :todo1 do\nSay();\nend\nend\n public void Say() {\nConsole.WriteLine(\"oi\");\n}"); f.Write(buf, 0, buf.Length); f.Close(); workspace.LoadFiles(); workspace.Parse(); Assert.AreEqual(1, workspace.ParsedFiles.Count); var actual = workspace.ParsedFiles[0]; Assert.AreEqual(1, actual.Tasks.Count); Assert.AreEqual("name1:todo1", actual.Tasks[0].Name); Assert.AreEqual(1, actual.HelperMethods.Count); Assert.AreEqual("Say", actual.HelperMethods[0].Name.ToString()); }