Example #1
0
        public void ReadRepositoriesWithDefaultFromConfiguration()
        {
            FakeAddInManagerSettings settings = new FakeAddInManagerSettings();

            settings.PackageRepositories = new string[]
            {
                @"Repository1=C:\Repositories\Repository1",
                @"Repository2=C:\Repositories\Repository2",
                PackageRepositories.DefaultRepositoryName + "=" + PackageRepositories.DefaultRepositorySource
            };

            AddInManagerEvents  events = new AddInManagerEvents();
            PackageRepositories packageRepositories = new PackageRepositories(events, settings);

            var packageSources = packageRepositories.RegisteredPackageSources;

            Assert.That(packageSources, Is.Not.Null);
            Assert.That(packageSources.Count(), Is.EqualTo(3));

            Assert.That(packageSources.ElementAt(0).Name, Is.EqualTo("Repository1"));
            Assert.That(packageSources.ElementAt(0).Source, Is.EqualTo(@"C:\Repositories\Repository1"));
            Assert.That(packageSources.ElementAt(1).Name, Is.EqualTo("Repository2"));
            Assert.That(packageSources.ElementAt(1).Source, Is.EqualTo(@"C:\Repositories\Repository2"));
            Assert.That(packageSources.ElementAt(2).Name, Is.EqualTo(PackageRepositories.DefaultRepositoryName));
            Assert.That(packageSources.ElementAt(2).Source, Is.EqualTo(PackageRepositories.DefaultRepositorySource));
        }
Example #2
0
        public void ReadRepositoriesFromConfiguration()
        {
            FakeAddInManagerSettings settings = new FakeAddInManagerSettings();

            settings.PackageRepositories = new string[]
            {
                @"Repository1=C:\Repositories\Repository1",
                @"Repository2=C:\Repositories\Repository2"
            };

            AddInManagerEvents  events = new AddInManagerEvents();
            PackageRepositories packageRepositories = new PackageRepositories(events, settings);

            var packageSources = packageRepositories.RegisteredPackageSources;

            Assert.That(packageSources, Is.Not.Null);
            Assert.That(packageSources.Count(), Is.EqualTo(3));

            // Default repository also must be present in first place
            Assert.That(packageSources.ElementAt(0).Name, Is.EqualTo(PackageRepositories.DefaultRepositoryName));
            Assert.That(packageSources.ElementAt(0).Source, Is.EqualTo(PackageRepositories.DefaultRepositorySource));

            // Then others are following
            Assert.That(packageSources.ElementAt(1).Name, Is.EqualTo("Repository1"));
            Assert.That(packageSources.ElementAt(1).Source, Is.EqualTo(@"C:\Repositories\Repository1"));
            Assert.That(packageSources.ElementAt(2).Name, Is.EqualTo("Repository2"));
            Assert.That(packageSources.ElementAt(2).Source, Is.EqualTo(@"C:\Repositories\Repository2"));
        }
Example #3
0
        public void SaveRepositoriesWithDefaultToConfiguration()
        {
            FakeAddInManagerSettings settings = new FakeAddInManagerSettings();

            settings.PackageRepositories = new string[]
            {
                @"Repository1=C:\Repositories\Repository1",
                @"Repository2=C:\Repositories\Repository2",
                PackageRepositories.DefaultRepositoryName + "=" + PackageRepositories.DefaultRepositorySource
            };

            AddInManagerEvents  events = new AddInManagerEvents();
            PackageRepositories packageRepositories = new PackageRepositories(events, settings);

            List <PackageSource> packageSources = new List <PackageSource>();

            packageSources.Add(new PackageSource(@"C:\Repositories\Repository3", "Repository3"));
            packageSources.Add(new PackageSource(@"C:\Repositories\Repository4", "Repository4"));
            packageSources.Add(new PackageSource(PackageRepositories.DefaultRepositorySource, PackageRepositories.DefaultRepositoryName));
            packageRepositories.RegisteredPackageSources = packageSources;

            var packageRepositoriesSetting = settings.PackageRepositories;

            Assert.That(packageRepositoriesSetting, Is.Not.Null);
            Assert.That(packageRepositoriesSetting.Count(), Is.EqualTo(3));

            Assert.That(packageRepositoriesSetting.ElementAt(0), Is.EqualTo(@"Repository3=C:\Repositories\Repository3"));
            Assert.That(packageRepositoriesSetting.ElementAt(1), Is.EqualTo(@"Repository4=C:\Repositories\Repository4"));
            Assert.That(packageRepositoriesSetting.ElementAt(2),
                        Is.EqualTo(PackageRepositories.DefaultRepositoryName + "=" + PackageRepositories.DefaultRepositorySource));
        }
Example #4
0
        private static IPackageContainer <IModule> CreatePackageContainer()
        {
            // ReSharper disable once ConvertToConstant.Local
            var repo = PackageRepositories.For(
                @"..\..\..\feed" // see 'Sample.targets'
                , "https://nuget.org/api/v2/");

            var packageManager = new NuPlugPackageManager(repo, "plugins")
            {
                Logger = new TraceLogger()
            };

            packageManager.SkipPackages();

            var version =
#if NCRUNCH
                Assembly.GetEntryAssembly().GetName().Version.ToString();
#else
                GitVersionInformation.NuGetVersion;
#endif
            var packagesConfig = new XDocument(
                new XElement("packages",
                             new XElement("package", new XAttribute("id", "NuPlug.SamplePlugin"), new XAttribute("version", version))
                             , new XElement("package", new XAttribute("id", "NuPlug.RestPlugin"), new XAttribute("version", version))
                             ));

            Trace.TraceInformation($"Installing packages ({PrettySource(packageManager.SourceRepository)} --> {PrettySource(packageManager.LocalRepository)})...");
            packageManager.InstallPackages(packagesConfig, false, true);

            Trace.TraceInformation("Removing duplicates...");
            packageManager.RemoveDuplicates();

            return(new NuGetPackageContainer <IModule>(packageManager));
        }
Example #5
0
        private IQueryable <IPackage> GetUpdatedPackages()
        {
            IQueryable <IPackage> localPackages = installedPackages;

            localPackages = FilterPackages(localPackages);

            int allUpdatesCount = 0;
            IEnumerable <IPackage> updatedPackages = null;

            var allRepositories = AddInManager.Repositories.RegisteredPackageRepositories;

            if (allRepositories != null)
            {
                // Run through all repositories and collect counts of updated packages
                foreach (var repository in allRepositories)
                {
                    var updatesForThisRepository = GetUpdatedPackages(repository, localPackages);

                    if (ActiveRepository.Source == repository.Source)
                    {
                        // This is also the user-selected repository we need the package list from
                        updatedPackages = updatesForThisRepository;
                    }

                    // Set update count for repository in list
                    var packageRepositoryModel = PackageRepositories.Where(pr => pr.SourceUrl == repository.Source).FirstOrDefault();
                    if (packageRepositoryModel != null)
                    {
                        int updatesCount = updatesForThisRepository.Count();
                        packageRepositoryModel.HighlightCount = updatesCount;
                        allUpdatesCount += updatesCount;
                    }
                }
            }

            if (updatedPackages == null)
            {
                // Just as fallback, if something goes wrong in upper loop
                updatedPackages = GetUpdatedPackages(AddInManager.Repositories.AllRegistered, localPackages);
                allUpdatesCount = updatedPackages.Count();
            }

            HighlightCount = allUpdatesCount;
            return(updatedPackages.AsQueryable());
        }
Example #6
0
        public void ReadInvalidRepositoriesFromConfiguration()
        {
            FakeAddInManagerSettings settings = new FakeAddInManagerSettings();

            settings.PackageRepositories = new string[]
            {
                @"Repository1|C:\Repositories\Repository1",
                "=",
                ""
            };

            AddInManagerEvents  events = new AddInManagerEvents();
            PackageRepositories packageRepositories = new PackageRepositories(events, settings);

            var packageSources = packageRepositories.RegisteredPackageSources;

            Assert.That(packageSources, Is.Not.Null);

            // Must be 1, because DefaultRepository is always there...
            Assert.That(packageSources.Count(), Is.EqualTo(1));
        }
Example #7
0
        public void SaveInvalidRepositoryListToConfiguration()
        {
            FakeAddInManagerSettings settings = new FakeAddInManagerSettings();

            settings.PackageRepositories = new string[]
            {
                @"Repository1=C:\Repositories\Repository1",
                @"Repository2=C:\Repositories\Repository2"
            };

            AddInManagerEvents  events = new AddInManagerEvents();
            PackageRepositories packageRepositories = new PackageRepositories(events, settings);

            // Setting invalid package source collection (null)
            packageRepositories.RegisteredPackageSources = null;

            var packageRepositoriesSetting = settings.PackageRepositories;

            Assert.That(packageRepositoriesSetting, Is.Not.Null);
            // Must be 1, because DefaultRepository is always there...
            Assert.That(packageRepositoriesSetting.Count(), Is.EqualTo(1));
        }