Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
        }
Пример #8
0
        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");
        }
Пример #9
0
        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);
        }