示例#1
0
        public void Equality()
        {
            // Set up
            var assemblyName     = "MyNuGetPackage, Version=1.0.4";
            var frameworkName    = new FrameworkName("SomeFramework", Version.Parse("5.6.7.2"));
            var package1         = "MyNuGetPackageId.1";
            var package1Version1 = "1.2.2";
            var package1Version2 = "1.2.3";

            var original = new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version1 }
            }, assemblyName);
            var compared = new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version1 }
            }, assemblyName);
            var comparedNotSamePackages = new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version2 }
            }, assemblyName);

            // Act & Assert
            Assert.True(original.Equals(compared));

            Assert.False(original.Equals("something"));
            Assert.False(original.Equals(null));
            Assert.False(original.Equals(comparedNotSamePackages));
        }
示例#2
0
        public void Ctor_ValidArguments_PropertiesSet()
        {
            var testSubject = new NuGetPackageInfo("my id", "my version");

            testSubject.Id.Should().Be("my id");
            testSubject.Version.Should().Be("my version");
        }
        public void SortingTest()
        {
            var target1 = NetStandard16;
            var target2 = Net40;

            var packageId1 = "Remotion.Linq";
            var packageId2 = "Antlr3.Runtime";
            var packageId3 = "NHibernate";
            var nuget1     = new NuGetPackageInfo(packageId1, new Dictionary <FrameworkName, string>(), "");
            var nuget2     = new NuGetPackageInfo(packageId2, new Dictionary <FrameworkName, string>(), "");
            var nuget3     = new NuGetPackageInfo(packageId3, new Dictionary <FrameworkName, string>(), "");

            var nugetList = new List <NuGetPackageInfo>()
            {
                nuget1, nuget2, nuget3
            };

            nugetList.Sort(new NuGetPackageInfoComparer());

            var expectedOrderedlist = new List <NuGetPackageInfo>()
            {
                nuget2, nuget3, nuget1
            };

            Assert.Equal(expectedOrderedlist, nugetList);
        }
示例#4
0
        public void OfflineModeTest()
        {
            var args = TestHelper.GetArguments("OfflineTest.slnx", "--offline");
            var p    = new NuGetPackageInfo("MyLocalTestApp", "1.0.0", TestHelper.GetStimulPathFor("Packages"), NuGetPackageType.DotNet, TestHelper.GetResultPathFor("Cache"));

            //Ensure the packet doesn't exists
            Assert.Throws(typeof(NuGetClientHelper.Exceptions.PackageInstallationException), () => SlnLauncher.Program.Main(args));
            //Manually install the package from the local copy
            NuGetClientHelper.NuGetClientHelper.InstallPackages(new[] { p }, false, null, NuGet.Frameworks.NuGetFramework.ParseFolder("net48"));
            Assert.DoesNotThrow(() => SlnLauncher.Program.Main(args));
        }
示例#5
0
        public IEnumerable <NuGetPackageInfo> GetNuGetPackagesInfo(IEnumerable <string> referencedNuGetPackages, IEnumerable <FrameworkName> targets)
        {
            foreach (var package in referencedNuGetPackages)
            {
                if (_packageFinder.TryFindSupportedVersions(package, targets, out var supportedVersions))
                {
                    var nuGetpackageInfo = new NuGetPackageInfo(package, supportedVersions);

                    yield return(nuGetpackageInfo);
                }
            }
        }
示例#6
0
        public void NuGetPackageInfoCreated()
        {
            var assemblyInfo    = "MyDll, Version=1.5.3";
            var frameworkName   = new FrameworkName("SomeFramework", Version.Parse("5.6.7.2"));
            var package1        = "MyNuGetPackageId.1";
            var package1Version = "1.2.2";

            var packageInfo = new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version }
            }, assemblyInfo);

            Assert.Equal(package1, packageInfo.PackageId);
            Assert.Equal(assemblyInfo, packageInfo.AssemblyInfo);
            Assert.Equal(frameworkName, packageInfo.SupportedVersions.First().Key);
        }
示例#7
0
        private IEnumerable <string> GetPackageReferences(Project project)
        {
            var componentModel    = (IComponentModel)Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider.GetService(typeof(SComponentModel));
            var installerServices = componentModel.GetService <IVsPackageInstallerServices>();

            if (installerServices == null)
            {
                _outputWindowWriter.WriteLine(LocalizedStrings.ErrorGettingInstalledPackages);
                return(Enumerable.Empty <string>());
            }

            var installedPackages = installerServices.GetInstalledPackages(project);

            return(installedPackages.Where(p => !NuGetPackageInfo.IsImplicitlyReferencedPackage(p.Id)).Select(n => n.Id));
        }
示例#8
0
        public void InvalidConstruction()
        {
            var assemblyInfo    = "MyDll, Version=1.5.3";
            var frameworkName   = new FrameworkName("SomeFramework", Version.Parse("5.6.7.2"));
            var package1        = "MyNuGetPackageId.1";
            var package1Version = "1.2.2";

            var packageInfo = new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version }
            }, assemblyInfo);

            Assert.Throws <ArgumentNullException>(() => new NuGetPackageInfo(null, new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version }
            }, assemblyInfo));
            Assert.Throws <ArgumentException>(() => new NuGetPackageInfo("", new Dictionary <FrameworkName, string> {
                { frameworkName, package1Version }
            }, assemblyInfo));
            Assert.Throws <ArgumentNullException>(() => new NuGetPackageInfo(package1, new Dictionary <FrameworkName, string> {
                { null, package1Version }
            }, assemblyInfo));
        }
示例#9
0
        private void ExtendList(List <NuGetPackageInfo> packages, PackageType[] importedValues, Uri offlineCache)
        {
            if (importedValues != null)
            {
                foreach (var e in importedValues)
                {
                    string source = offlineCache?.ToString() ?? SafeExpandEnvironmentVariables(e.source);
                    var    dependenciesSources = offlineCache?.ToString() ?? SafeExpandEnvironmentVariables(e.dependencySources);
                    var    candidate           = new NuGetPackageInfo(SafeExpandEnvironmentVariables(e.id),
                                                                      SafeExpandEnvironmentVariables(e.version),
                                                                      source,
                                                                      dependenciesSources?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries),
                                                                      IsDotNet(e), PackagesPath,
                                                                      !e.dependenciesForceMinVersionSpecified || e.dependenciesForceMinVersion,
                                                                      SafeExpandEnvironmentVariables(e.customPath));

                    var alreadyPresent = packages.Where((x) => x.Identity.Id.Equals(candidate.Identity.Id, StringComparison.OrdinalIgnoreCase));
                    if (alreadyPresent.Count() == 0)
                    {
                        packages.Add(candidate);
                    }
                }
            }
        }