void AddNuGetPackageReference(IDotNetProject project, string packageId) { var packageRepoFactory = new SharpDevelopPackageRepositoryFactory(); var packageRepo = packageRepoFactory.CreateRepository("http://www.nuget.org/api/v2/"); var packageManagementProjectFactory = new PackageManagementProjectFactory(PackageManagementServices.PackageManagementEvents); var packageManagementProject = packageManagementProjectFactory.CreateProject(packageRepo, project); var package = packageRepo.FindPackagesById(packageId).FirstOrDefault(x => x.IsLatestVersion); var packageManagerFactory = new SharpDevelopPackageManagerFactory(); var packageManager = packageManagerFactory.CreatePackageManager(packageRepo, project); packageManager.InstallPackage(package, false, false); packageManagementProject.AddPackageReference(package); }
public void CreateAggregateRepository_OnePackageSourceHasInvalidUri_NoExceptionThrownWhenCreatingAggregateRepositoryAndSearchingForPackages() { CreatePackageSources(); packageSourcesHelper.RegisteredPackageSources.Clear(); var invalidPackageSource = new PackageSource(String.Empty, "InvalidSource"); packageSourcesHelper.RegisteredPackageSources.Add(invalidPackageSource); var factory = new SharpDevelopPackageRepositoryFactory(); CreateCacheUsingPackageSources(factory); IPackageRepository repository = cache.CreateAggregateRepository(); var aggregateRepository = (MonoDevelopAggregateRepository)repository; Assert.IsFalse(aggregateRepository.AnyFailures()); Assert.DoesNotThrow(() => repository.Search("abc", false)); Assert.IsTrue(aggregateRepository.AnyFailures()); }
public void CreateAggregateRepository_OnePackageSourceHasInvalidUriAndSearchExecutedMultipleTimes_ExceptionThrownByPackageRepositoryIsOnlyRecordedOnce() { CreatePackageSources(); packageSourcesHelper.RegisteredPackageSources.Clear(); var invalidPackageSource = new PackageSource(String.Empty, "InvalidSource"); packageSourcesHelper.RegisteredPackageSources.Add(invalidPackageSource); var factory = new SharpDevelopPackageRepositoryFactory(); CreateCacheUsingPackageSources(factory); IPackageRepository repository = cache.CreateAggregateRepository(); var aggregateRepository = (MonoDevelopAggregateRepository)repository; repository.Search("abc", false); repository.Search("abc", false); repository.Search("abc", false); Assert.IsTrue(aggregateRepository.AnyFailures()); Assert.AreEqual(1, aggregateRepository.GetAggregateException().InnerExceptions.Count); }