コード例 #1
0
        private Updater CreateVersionUpdater(IFileSystem mockFileSystem)
        {
            var projectFileFileFinder       = new ProjectFileFinder(mockFileSystem);
            var dockerFileFileFinder        = new DockerFileFinder(mockFileSystem);
            var environmentFileFileFinder   = new EnvironmentFileFinder(mockFileSystem);
            var dockerComposeFileFileFinder = new DockerComposeFileFinder(mockFileSystem);

            return(new Updater(_dotNetVersionUpdater, new PhysicalConsole(), projectFileFileFinder,
                               dockerFileFileFinder, environmentFileFileFinder, dockerComposeFileFileFinder, mockFileSystem));
        }
        public void ShouldNotFindAnyDockerFiles()
        {
            var mockFileSystem = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}src{OS.Slash}srcprojectfolder{OS.Slash}srcproject.txt", new MockFileData("") },
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}tests{OS.Slash}testprojectfolder{OS.Slash}testproject.cs", new MockFileData("") },
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}other{OS.Slash}random{OS.Slash}folder{OS.Slash}otherproj.vb", new MockFileData("") }
            });

            var fileFinder = new EnvironmentFileFinder(mockFileSystem);

            var results = fileFinder.Search($"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}").ToList();

            Assert.That(results.Count, Is.EqualTo(0));
        }
        public void ShouldFindAllEnvironmentFilesInSpecifiedDirectory()
        {
            var mockFileSystem = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}src{OS.Slash}srcprojectfolder{OS.Slash}.env", new MockFileData("") },
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}tests{OS.Slash}testprojectfolder{OS.Slash}.Env", new MockFileData("") },
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}other{OS.Slash}random{OS.Slash}folder{OS.Slash}.ENV", new MockFileData("") },
                { $"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}other{OS.Slash}random{OS.Slash}test{OS.Slash}test.env", new MockFileData("") }
            });

            var fileFinder = new EnvironmentFileFinder(mockFileSystem);

            var results = fileFinder.Search($"C:{OS.Slash}dev{OS.Slash}solutionfolder{OS.Slash}").ToList();

            Assert.That(results.Count, Is.EqualTo(4));
            Assert.That(results.First().Name, Is.EqualTo(".env"));
            Assert.That(results[1].Name, Is.EqualTo(".Env"));
            Assert.That(results[2].Name, Is.EqualTo(".ENV"));
            Assert.That(results[3].Name, Is.EqualTo("test.env"));
        }
コード例 #4
0
        public async Task <int> OnExecute(CommandLineApplication app, IConsole console)
        {
            if (string.IsNullOrWhiteSpace(Path))
            {
                Path = Directory.GetCurrentDirectory();
            }

            if (!Directory.Exists(Path))
            {
                console.WriteLine("Supplied Path does not exist. Aborting");
                return(await Task.FromResult(-1));
            }

            console.WriteLine($"Starting updating of {Path}");

            var projectFileFileFinder = new ProjectFileFinder(_fileSystem);
            var dockerFileFinder      = new DockerFileFinder(_fileSystem);
            var environmentFileFinder = new EnvironmentFileFinder(_fileSystem);
            var fileUpdater           = new FileUpdater(console);

            var dockerFiles  = dockerFileFinder.Search(Path);
            var projectFiles = projectFileFileFinder.Search(Path);
            var envFiles     = environmentFileFinder.Search(Path);

            //TODO: inject the version updater based on the version the user wants
            var dotNetVersionUpdater = new Version2Point1Updater();

            fileUpdater.UpdateProjectFiles(projectFiles, dotNetVersionUpdater);
            fileUpdater.UpdateDockerFiles(dockerFiles, dotNetVersionUpdater);
            fileUpdater.UpdateEnvironmentFiles(envFiles, dotNetVersionUpdater);

            if (Test)
            {
                var dotnet = new DotNet();
                dotnet.Test();
            }

            return(await Task.FromResult(0));
        }