Exemple #1
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 OsxBashEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                fileSystem);

            environmentPath.AddPackageExecutablePathToUserPath();

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

            fileSystem
            .Exists(OsxBashEnvironmentPath.DotnetCliToolsPathsDPath)
            .Should()
            .Be(false);
        }
Exemple #2
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/paths.d");

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

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

            environmentPath.AddPackageExecutablePathToUserPath();

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

            fileSystem
            .File
            .ReadAllText(OsxBashEnvironmentPath.DotnetCliToolsPathsDPath)
            .Should()
            .Be(toolsPath.PathWithTilde);
        }
Exemple #3
0
        public void GivenPathSetItPrintsNothing(string toolsDirectoryOnPath)
        {
            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 + ":" + toolsDirectoryOnPath);

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

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().BeEmpty();
        }
Exemple #4
0
        public void GivenPathNotSetAndProfileExistsItPrintsReopenMessage()
        {
            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 OsxBashEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                new FileSystemMockBuilder()
                .AddFile(OsxBashEnvironmentPath.DotnetCliToolsPathsDPath, "")
                .Build()
                .File);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

            reporter.Lines.Should().Equal(CommonLocalizableStrings.EnvironmentPathOSXNeedReopen);
        }
Exemple #5
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 OsxBashEnvironmentPath(
                toolsPath,
                reporter,
                provider.Object,
                FileSystemMockBuilder.Empty.File);

            environmentPath.PrintAddPathInstructionIfPathDoesNotExist();

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