public void RenamedScriptFilesAutomaticallyGetRenamedInScriptDirectory() { var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "A Test File 1"); filePath = Path.Combine(directory, $"_{++testNumber}_TestFile2.sql"); File.WriteAllText(filePath, "A Test File 2"); var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", false); var newNumber = ++testNumber; var newName = "newTestName"; var newFileName = Path.Combine(directory, $"_{newNumber}_{newName}.sql"); Thread.Sleep(25); File.Move(filePath, newFileName); Thread.Sleep(WaitPeriod); Assert.That( scriptDirectory.Steps.Count, Is.EqualTo(2), "Contents: {0}", scriptDirectory.Steps.Aggregate(string.Empty, (c, n) => c + n.FilePath + "; ")); Assert.That( scriptDirectory.Steps.FirstOrDefault(v => v.Name == newName), Is.Not.Null.And.Property("Ordinal").EqualTo(newNumber)); }
public void FilesWithSameNameInDifferentSubDirectoriesSelectedByDepthThenAlpha() { var subDirectoryA = Path.Combine(directory, "SubDirectoryA"); Directory.CreateDirectory(subDirectoryA); var subDirectoryB = Path.Combine(directory, "SubDirectoryB"); Directory.CreateDirectory(subDirectoryB); var filePath = Path.Combine(directory, $"_{testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "Test File 1 - MainDirectory"); filePath = Path.Combine(subDirectoryA, $"_{testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "Test File 1 - SubDirectoryA"); testNumber++; filePath = Path.Combine(subDirectoryA, $"_{testNumber}_TestFile2.sql"); File.WriteAllText(filePath, "Test File 2 - SubDirectoryA"); filePath = Path.Combine(subDirectoryB, $"_{testNumber}_TestFile2.sql"); File.WriteAllText(filePath, "Test File 2 - SubDirectoryB"); var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", true); Assert.That( scriptDirectory.Steps.Count, Is.EqualTo(2), "Only two files should be included since they have the same name"); Directory.Delete(subDirectoryA, true); Directory.Delete(subDirectoryB, true); }
public void CreatingScriptDirectoryWithSubDirectoriesDrawsInAllFiles() { var subDirectoryA = Path.Combine(directory, "SubDirectoryA"); Directory.CreateDirectory(subDirectoryA); var subDirectoryB = Path.Combine(directory, "SubDirectoryB"); Directory.CreateDirectory(subDirectoryB); var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "A Test File 1"); filePath = Path.Combine(subDirectoryA, $"_{++testNumber}_TestFile2.sql"); File.WriteAllText(filePath, "A Test File 2"); filePath = Path.Combine(subDirectoryB, $"_{++testNumber}_TestFile3.sql"); File.WriteAllText(filePath, "A Test File 3"); var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", true); Assert.That(scriptDirectory.Steps.Count, Is.EqualTo(3)); Directory.Delete(subDirectoryA, true); Directory.Delete(subDirectoryB, true); }
public void AddedScriptFileAutomaticallyDrawnIntoScriptDirectory() { var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", false); var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "A Test File 1"); Thread.Sleep(WaitPeriod); Assert.That(scriptDirectory.Steps.Count, Is.EqualTo(1)); }
public void CreatingScriptDirectoryDrawsInAllScriptFiles() { var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "A Test File 1"); filePath = Path.Combine(directory, $"_{++testNumber}_TestFile2.sql"); File.WriteAllText(filePath, "A Test File 2"); filePath = Path.Combine(directory, $"_{++testNumber}_TestFile3.sql"); File.WriteAllText(filePath, "A Test File 3"); var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", false); Assert.That(scriptDirectory.Steps.Count, Is.EqualTo(3)); }
public void Get_Scripts_Returns_All_Scripts_From_Single_Script_Directory() { var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePath, "A Test File 1"); var scriptDir = new ProcessStepDirectory(directory, "*.sql", false); var proj = new ConversionProject(); proj.StepDirectories.Add(scriptDir); var scripts = proj.GetSteps(); Assert.That(scripts, Has.Count.EqualTo(1)); Assert.That(scripts.FirstOrDefault(v => v.FilePath == filePath), Is.Not.Null); }
public void ChangedScriptFilesAutomaticallyGetUpdatedInScriptDirectory() { var filePath = Path.Combine(directory, $"_{++testNumber}_TestFile1.sql"); var warning = "A Warning Message"; File.WriteAllText(filePath, $@"{{{{Warning={warning}}}}}"); var scriptDirectory = new ProcessStepDirectory(directory, "*.sql", false); Assume.That(scriptDirectory.Steps.OfType <Script>().First().GetWarning(), Is.EqualTo(warning)); var newWarning = "A New Warning Message"; File.WriteAllText(filePath, $@"{{{{Warning={newWarning}}}}}"); Thread.Sleep(WaitPeriod); Assert.That(scriptDirectory.Steps.OfType <Script>().First().GetWarning(), Is.EqualTo(newWarning)); }
public void Get_Scripts_Serves_Only_Last_Script_If_Multiples_Exist_In_Different_Directories() { var duplicateName = "TestFile1"; var duplicateFileName = $"_{++testNumber}_{duplicateName}.sql"; var duplicateFileDirectoryA = Path.Combine(subDirectoryA, duplicateFileName); File.WriteAllText(duplicateFileDirectoryA, "Test File 1 - SubDirectoryA"); var duplicateFileDirectoryB = Path.Combine(subDirectoryB, duplicateFileName); File.WriteAllText(duplicateFileDirectoryB, "Test File 1 - SubDirectoryB"); var filePathB = Path.Combine(subDirectoryB, $"_{++testNumber}_TestFile2.sql"); File.WriteAllText(filePathB, "Test File 2 - SubDirectoryB"); var scriptDirA = new ProcessStepDirectory(subDirectoryA, "*.sql", false); var scriptDirB = new ProcessStepDirectory(subDirectoryB, "*.sql", false); Assert.That(scriptDirA.Steps.Count, Is.EqualTo(1), "ScriptDirA should have one file"); Assert.That(scriptDirB.Steps.Count, Is.EqualTo(2), "ScriptDirB should have two file"); var proj = new ConversionProject(); proj.StepDirectories.Add(scriptDirA); proj.StepDirectories.Add(scriptDirB); var scripts = proj.GetSteps(); Assert.That( scripts, Has.Count.EqualTo(2), "Only two files should be returned since two of the three are duplicates"); var scriptA = scripts.First(v => v.Name == duplicateName); Assert.That( scriptA.FilePath, Is.EqualTo(duplicateFileDirectoryB), "The duplicate file should be the copy found in the last script directory"); }
public void Get_Scripts_Returns_All_Scripts_From_Multiple_Script_Directory() { var filePathA = Path.Combine(subDirectoryA, $"_{++testNumber}_TestFile1.sql"); File.WriteAllText(filePathA, "Test File 1 - SubDirectoryA"); var filePathB = Path.Combine(subDirectoryB, $"_{++testNumber}_TestFile2.sql"); File.WriteAllText(filePathB, "Test File 2 - SubDirectoryB"); var scriptDirA = new ProcessStepDirectory(subDirectoryA, "*.sql", false); var scriptDirB = new ProcessStepDirectory(subDirectoryB, "*.sql", false); var proj = new ConversionProject(); proj.StepDirectories.Add(scriptDirA); proj.StepDirectories.Add(scriptDirB); var scripts = proj.GetSteps(); Assert.That(scripts, Has.Count.EqualTo(2)); Assert.That(scripts.FirstOrDefault(v => v.FilePath == filePathA), Is.Not.Null); Assert.That(scripts.FirstOrDefault(v => v.FilePath == filePathB), Is.Not.Null); }