public void PackageRestoreRepositorySourceReturnsPrimaryRepositorySource()
        {
            var mockRepository1 = new MockPackageRepository("Source1");
            var mockRepository2 = new MockPackageRepository("Source2");

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1, mockRepository2);

            Assert.Equal("Source1", packageRestoreRepository.Source);
        }
        public void PackageRestoreRepositorySupportsPrereleasePackagesReturnsValueOfPrimaryRepository()
        {
            var mockRepository1 = new Mock <IPackageRepository>();
            var mockRepository2 = new Mock <IPackageRepository>();

            mockRepository1.Setup(p => p.SupportsPrereleasePackages).Returns(false);
            mockRepository2.Setup(p => p.SupportsPrereleasePackages).Returns(true);

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1.Object, mockRepository2.Object);

            Assert.Equal(false, packageRestoreRepository.SupportsPrereleasePackages);
        }
        public void RestorePackages(Project project)
        {
            string packageReferenceFileFullPath;
            Tuple <string, string> packageReferenceFiles = VsUtility.GetPackageReferenceFileFullPaths(project);

            if (File.Exists(packageReferenceFiles.Item1))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item1;
            }
            else if (File.Exists(packageReferenceFiles.Item2))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item2;
            }
            else
            {
                return;
            }

            var packageReferenceFile = new PackageReferenceFile(packageReferenceFileFullPath);
            var packages             = packageReferenceFile.GetPackageReferences().ToList();

            if (packages.Count == 0)
            {
                return;
            }

            var repoSettings = ServiceLocator.GetInstance <IRepositorySettings>();
            var fileSystem   = new PhysicalFileSystem(repoSettings.RepositoryPath);
            var activePackageSourceRepository = ServiceLocator.GetInstance <IPackageRepository>();
            var repository = new PriorityPackageRepository(NuGet.MachineCache.Default, activePackageSourceRepository);
            IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance <IVsPackageManagerFactory>();
            var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false);

            foreach (var package in packages)
            {
                if (IsPackageInstalled(fileSystem, package.Id, package.Version))
                {
                    continue;
                }

                using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString()))
                {
                    var resolvedPackage = PackageHelper.ResolvePackage(
                        packageManager.SourceRepository, package.Id, package.Version);
                    NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage);
                }
            }
        }
Example #4
0
        public void RestorePackages(Project project)
        {
            string packageReferenceFileFullPath;
            Tuple<string, string> packageReferenceFiles = VsUtility.GetPackageReferenceFileFullPaths(project);
            if (File.Exists(packageReferenceFiles.Item1))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item1;
            }
            else if (File.Exists(packageReferenceFiles.Item2))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item2;
            }
            else
            {
                return;
            }

            var packageReferenceFile = new PackageReferenceFile(packageReferenceFileFullPath);
            var packages = packageReferenceFile.GetPackageReferences().ToList();
            if (packages.Count == 0)
            {
                return;
            }

            var repoSettings = ServiceLocator.GetInstance<IRepositorySettings>();
            var fileSystem = new PhysicalFileSystem(repoSettings.RepositoryPath);
            var activePackageSourceRepository = ServiceLocator.GetInstance<IPackageRepository>();
            var repository = new PriorityPackageRepository(NuGet.MachineCache.Default, activePackageSourceRepository);
            IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance<IVsPackageManagerFactory>();
            var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false);

            foreach (var package in packages)
            {
                if (IsPackageInstalled(fileSystem, package.Id, package.Version))
                {
                    continue;
                }

                using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString()))
                {
                    var resolvedPackage = PackageHelper.ResolvePackage(
                        packageManager.SourceRepository, package.Id, package.Version);
                    NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage);
                }
            }
        }
        public void PackageRestoreRepositoryGetPackagesReturnsPrimaryRepositoryPackages()
        {
            var mockRepository1 = new MockPackageRepository();
            var mockRepository2 = new MockPackageRepository();

            mockRepository1.AddPackage(PackageUtility.CreatePackage("A"));
            mockRepository1.AddPackage(PackageUtility.CreatePackage("B"));
            mockRepository2.AddPackage(PackageUtility.CreatePackage("C"));

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1, mockRepository2);

            var packages = packageRestoreRepository.GetPackages().ToList();

            Assert.Equal(2, packages.Count);
            Assert.Equal("A", packages[0].Id);
            Assert.Equal("B", packages[1].Id);
        }
Example #6
0
        private static List <MemoryStream> GetZipStreams()
        {
            var sourcerepo = new PriorityPackageRepository(MachineCache.Default, new PackageSourceProvider(Settings.LoadDefaultSettings(new PhysicalFileSystem("C:\\"), null, null)).CreateAggregateRepository(PackageRepositoryFactory.Default, true));

            // Just headers, no content dloaded yet (not much, at least)
            List <IPackage> ipackages = LargePackageIds.Select(pkgid => sourcerepo.FindPackage(pkgid.Id, pkgid.Version)).ToList();

            // Get the ZIPs
            List <MemoryStream> zips = ipackages.Select(ipkg =>
            {
                var mems = new MemoryStream();
                ipkg.GetStream().CopyTo(mems);
                return(mems);
            }).ToList();

            return(zips);
        }
Example #7
0
        /// <summary>
        /// Restores the given package into the packages folder represented by 'fileSystem'.
        /// </summary>
        /// <param name="package">The package to be restored.</param>
        private void RestorePackage(PackageReference package)
        {
            WriteLine(VerbosityLevel.Normal, Resources.RestoringPackage, package);

            // during package restore, use local cache as the primary source, other active sources
            // as secondary source.
            var activePackageSourceRepository = ServiceLocator.GetInstance <IPackageRepository>();
            var repository = new PriorityPackageRepository(NuGet.MachineCache.Default, activePackageSourceRepository);
            IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance <IVsPackageManagerFactory>();
            var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false);

            using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString()))
            {
                var resolvedPackage = PackageHelper.ResolvePackage(
                    packageManager.SourceRepository, package.Id, package.Version);
                NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage);
                WriteLine(VerbosityLevel.Normal, Resources.PackageRestored, resolvedPackage);
            }
        }
        public void PackageRestoreRepositoryGetPackagesReturnsPrimaryRepositoryPackages()
        {
            var mockRepository1 = new MockPackageRepository();
            var mockRepository2 = new MockPackageRepository();

            mockRepository1.AddPackage(PackageUtility.CreatePackage("A"));
            mockRepository1.AddPackage(PackageUtility.CreatePackage("B"));
            mockRepository2.AddPackage(PackageUtility.CreatePackage("C"));

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1, mockRepository2);

            var packages = packageRestoreRepository.GetPackages().ToList();

            Assert.Equal(2, packages.Count);
            Assert.Equal("A", packages[0].Id);
            Assert.Equal("B", packages[1].Id);
        }
        public void PackageRestoreRepositorySupportsPrereleasePackagesReturnsValueOfPrimaryRepository()
        {
            var mockRepository1 = new Mock<IPackageRepository>();
            var mockRepository2 = new Mock<IPackageRepository>();

            mockRepository1.Setup(p => p.SupportsPrereleasePackages).Returns(false);
            mockRepository2.Setup(p => p.SupportsPrereleasePackages).Returns(true);

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1.Object, mockRepository2.Object);

            Assert.Equal(false, packageRestoreRepository.SupportsPrereleasePackages);
        }
        public void PackageRestoreRepositorySourceReturnsPrimaryRepositorySource()
        {
            var mockRepository1 = new MockPackageRepository("Source1");
            var mockRepository2 = new MockPackageRepository("Source2");

            var packageRestoreRepository = new PriorityPackageRepository(mockRepository1, mockRepository2);

            Assert.Equal("Source1", packageRestoreRepository.Source);
        }
Example #11
0
        /// <summary>
        /// Restores the given package into the packages folder represented by 'fileSystem'.
        /// </summary>
        /// <param name="package">The package to be restored.</param>
        private void RestorePackage(PackageReference package)
        {
            WriteLine(VerbosityLevel.Normal, Resources.RestoringPackage, package);

            // during package restore, use local cache as the primary source, other sources
            // as secondary source.            
            IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance<IVsPackageManagerFactory>();
            var allSources = packageManagerFactory.CreatePackageManagerWithAllPackageSources().SourceRepository;
            var repository = new PriorityPackageRepository(NuGet.MachineCache.Default, allSources);
            var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false);
            using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString()))
            {
                var resolvedPackage = PackageHelper.ResolvePackage(
                    packageManager.SourceRepository, package.Id, package.Version);
                NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage);
                WriteLine(VerbosityLevel.Normal, Resources.PackageRestored, resolvedPackage);
            }
        }