示例#1
0
        public void SholdUseNugetUnderHomeOnNonWindows()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("HOME", "User Home")
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultPackageDirectory(Platform.Linux, environment);

            result.Should().Be(Path.Combine("User Home", ".nuget", "packages"));
        }
示例#2
0
        public void ShouldUseNugetUnderUserProfileOnWindows()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("USERPROFILE", "User Profile")
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultProbeDirectories(Platform.Windows, environment);

            result.Should().Contain(Path.Combine("User Profile", ".nuget", "packages"));
        }
示例#3
0
        public void SholdUseEnvironmentVariableToGetDefaultLocation()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("NUGET_PACKAGES", PackagesPath)
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultPackageDirectory(Platform.Unknown, environment);

            result.Should().Be(PackagesPath);
        }
示例#4
0
        public void ShouldUseEnvironmentVariableToGetDefaultLocation()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("NUGET_PACKAGES", PackagesPath)
                              .AddAppContextData("PROBING_DIRECTORIES", string.Empty)
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultProbeDirectories(environment);

            result.Should().Contain(PackagesPath);
        }
示例#5
0
        public void ShouldUseEnvironmentVariableToGetDefaultLocation()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("NUGET_PACKAGES", PackagesPath)
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultProbeDirectories(environment);

            // The host for .NET Core 2.0 always sets the PROBING_DIRECTORIES property on the AppContext. Because of that,
            // no additional package directories should be returned from this, even if they are set as environment variables.
            result.Should().NotContain(PackagesPath);
        }
示例#6
0
        public void ShouldUseNugetUnderHomeOnNonWindows()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .SetIsWindows(false)
                              .AddVariable("HOME", "User Home")
                              .AddAppContextData("PROBING_DIRECTORIES", string.Empty)
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultProbeDirectories(environment);

            result.Should().Contain(Path.Combine("User Home", ".nuget", "packages"));
        }
示例#7
0
        public void ShouldUseNugetUnderHomeOnNonWindows()
        {
            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("HOME", "User Home")
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultProbeDirectories(Platform.Linux, environment);

            // The host for .NET Core 2.0 always sets the PROBING_DIRECTORIES property on the AppContext. Because of that,
            // no additional package directories should be returned from this, even if they are set as environment variables.
            result.Should().NotContain(Path.Combine("User Home", ".nuget", "packages"));
        }
示例#8
0
        public void SholdUseNugetUnderHomeOnNonWindows()
        {
            var runtime = new Mock <IRuntimeEnvironment>();

            runtime.SetupGet(r => r.OperatingSystemPlatform).Returns(Platform.Linux);

            var environment = EnvironmentMockBuilder.Create()
                              .AddVariable("HOME", "User Home")
                              .Build();

            var result = PackageCompilationAssemblyResolver.GetDefaultPackageDirectory(runtime.Object, environment);

            result.Should().Be(Path.Combine("User Home", ".nuget", "packages"));
        }
示例#9
0
        public void FailsWhenOneOfAssembliesNotFound()
        {
            var packagePath = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion);
            var fileSystem  = FileSystemMockBuilder.Create()
                              .AddFiles(packagePath, F.DefaultAssemblyPath)
                              .Build();
            var library = F.Create(assemblies: F.TwoAssemblies);

            var resolver   = new PackageCompilationAssemblyResolver(fileSystem, new string[] { PackagesPath });
            var assemblies = new List <string>();

            resolver.TryResolveAssemblyPaths(library, assemblies)
            .Should().BeFalse();

            assemblies.Should().BeEmpty();
        }
示例#10
0
        public void FailsWhenOneOfAssembliesNotFound()
        {
            var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion);
            var fileSystem  = FileSystemMockBuilder.Create()
                              .AddFiles(packagePath, F.DefaultAssemblyPath)
                              .Build();
            var library = F.Create(assemblies: F.TwoAssemblies);

            var resolver   = new PackageCompilationAssemblyResolver(fileSystem, PackagesPath);
            var assemblies = new List <string>();

            var exception = Assert.Throws <InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies));

            exception.Message.Should()
            .Contain(F.SecondAssemblyPath)
            .And.Contain(library.Name);
        }
示例#11
0
        public void ResolvesAllAssemblies()
        {
            var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion);
            var fileSystem  = FileSystemMockBuilder.Create()
                              .AddFiles(packagePath, F.TwoAssemblies)
                              .Build();
            var library = F.Create(assemblies: F.TwoAssemblies);

            var resolver   = new PackageCompilationAssemblyResolver(fileSystem, PackagesPath);
            var assemblies = new List <string>();

            var result = resolver.TryResolveAssemblyPaths(library, assemblies);

            assemblies.Should().HaveCount(2);
            assemblies.Should().Contain(Path.Combine(packagePath, F.DefaultAssemblyPath));
            assemblies.Should().Contain(Path.Combine(packagePath, F.SecondAssemblyPath));
        }
示例#12
0
        public void KeepsLookingWhenOneOfAssembliesNotFound()
        {
            var packagePath1 = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion);
            var secondPath   = "secondPath";
            var packagePath2 = GetPackagesPath(secondPath, F.DefaultPackageName, F.DefaultVersion);
            var fileSystem   = FileSystemMockBuilder.Create()
                               .AddFiles(packagePath1, F.DefaultAssemblyPath)
                               .AddFiles(packagePath2, F.DefaultAssemblyPath, F.SecondAssemblyPath)
                               .Build();
            var library = F.Create(assemblies: F.TwoAssemblies);

            var resolver   = new PackageCompilationAssemblyResolver(fileSystem, new string[] { PackagesPath, secondPath });
            var assemblies = new List <string>();

            resolver.TryResolveAssemblyPaths(library, assemblies)
            .Should().BeTrue();

            assemblies.Should().HaveCount(2);
            assemblies.Should().Contain(Path.Combine(packagePath2, F.DefaultAssemblyPath));
            assemblies.Should().Contain(Path.Combine(packagePath2, F.SecondAssemblyPath));
        }