Ejemplo n.º 1
0
        public void GivenPathNotSetItAddsToEnvironment()
        {
            var         reporter   = new BufferedReporter();
            var         toolsPath  = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools");
            var         pathValue  = @"/usr/bin";
            var         provider   = new Mock <IEnvironmentProvider>(MockBehavior.Strict);
            IFileSystem fileSystem = new FileSystemMockBuilder().Build();

            fileSystem.Directory.CreateDirectory("/etc/profile.d");

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue);

            var environmentPath = new LinuxEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                fileSystem.File);

            environmentPath.AddPackageExecutablePathToUserPath();

            reporter.Lines.Should().BeEmpty();

            fileSystem
            .File
            .ReadAllText(LinuxEnvironmentPath.DotnetCliToolsProfilePath)
            .Should()
            .Be($"export PATH=\"$PATH:{toolsPath.PathWithDollar}\"");
        }
Ejemplo n.º 2
0
        public void GivenPathSetItDoesNotAddPathToEnvironment()
        {
            var reporter   = new BufferedReporter();
            var toolsPath  = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools");
            var pathValue  = @"/usr/bin";
            var provider   = new Mock <IEnvironmentProvider>(MockBehavior.Strict);
            var fileSystem = new FileSystemMockBuilder().Build().File;

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue + ":" + toolsPath.Path);

            var environmentPath = new LinuxEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                fileSystem);

            environmentPath.AddPackageExecutablePathToUserPath();

            reporter.Lines.Should().BeEmpty();

            fileSystem
            .Exists(LinuxEnvironmentPath.DotnetCliToolsProfilePath)
            .Should()
            .Be(false);
        }
Ejemplo n.º 3
0
        public void GivenPathSetItPrintsInstruction(string toolsDirectoryOnPath)
        {
            BufferedReporter           reporter  = new BufferedReporter();
            BashPathUnderHomeDirectory toolsPath = new BashPathUnderHomeDirectory(
                "/home/user",
                ".dotnet/tools");
            string pathValue = @"/usr/bin";
            Mock <IEnvironmentProvider> provider = new Mock <IEnvironmentProvider>(MockBehavior.Strict);

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue + ":" + toolsDirectoryOnPath);

            provider
            .Setup(p => p.GetEnvironmentVariable("SHELL"))
            .Returns("/bin/zsh");

            OsxZshEnvironmentPathInstruction environmentPath = new OsxZshEnvironmentPathInstruction(
                toolsPath,
                reporter,
                provider.Object);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().Equal(
                string.Format(
                    CommonLocalizableStrings.EnvironmentPathOSXZshManualInstructions,
                    toolsPath.Path));
        }
Ejemplo n.º 4
0
 public OsxZshEnvironmentPathInstruction(
     BashPathUnderHomeDirectory executablePath,
     IReporter reporter,
     IEnvironmentProvider environmentProvider
     )
 {
     _packageExecutablePath = executablePath;
     _environmentProvider
         = environmentProvider ?? throw new ArgumentNullException(nameof(environmentProvider));
     _reporter
         = reporter ?? throw new ArgumentNullException(nameof(reporter));
 }
Ejemplo n.º 5
0
 internal LinuxEnvironmentPath(
     BashPathUnderHomeDirectory packageExecutablePath,
     IReporter reporter,
     IEnvironmentProvider environmentProvider,
     IFile fileSystem)
 {
     _fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
     _environmentProvider
         = environmentProvider ?? throw new ArgumentNullException(nameof(environmentProvider));
     _reporter
         = reporter ?? throw new ArgumentNullException(nameof(reporter));
     _packageExecutablePath = packageExecutablePath;
 }
Ejemplo n.º 6
0
        public void GivenPathSetItPrintsNothing(string toolsDiretoryOnPath)
        {
            var reporter  = new BufferedReporter();
            var toolsPath = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools");
            var pathValue = @"/usr/bin";
            var provider  = new Mock <IEnvironmentProvider>(MockBehavior.Strict);

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue + ":" + toolsDiretoryOnPath);

            var environmentPath = new LinuxEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                FileSystemMockBuilder.Empty.File);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().BeEmpty();
        }
Ejemplo n.º 7
0
        public void GivenPathNotSetAndProfileExistsItPrintsLogoutMessage()
        {
            var reporter  = new BufferedReporter();
            var toolsPath = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools");
            var pathValue = @"/usr/bin";
            var provider  = new Mock <IEnvironmentProvider>(MockBehavior.Strict);

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue);

            var environmentPath = new LinuxEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                new FileSystemMockBuilder()
                .AddFile(LinuxEnvironmentPath.DotnetCliToolsProfilePath, "")
                .Build()
                .File);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().Equal(CommonLocalizableStrings.EnvironmentPathLinuxNeedLogout);
        }
Ejemplo n.º 8
0
        public void GivenPathNotSetItPrintsManualInstructions()
        {
            var reporter  = new BufferedReporter();
            var toolsPath = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools");
            var pathValue = @"/usr/bin";
            var provider  = new Mock <IEnvironmentProvider>(MockBehavior.Strict);

            provider
            .Setup(p => p.GetEnvironmentVariable("PATH"))
            .Returns(pathValue);

            var environmentPath = new LinuxEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                FileSystemMockBuilder.Empty.File);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().Equal(
                string.Format(
                    CommonLocalizableStrings.EnvironmentPathLinuxManualInstructions,
                    toolsPath.Path));
        }