Browse Source

Check for NuGet package updates in all configured repositories.

pull/15/head
mrward 15 years ago
parent
commit
5931f6d71a
  1. 7
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementService.cs
  3. 18
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementService.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageUpdatesViewModel.cs
  5. 4
      src/AddIns/Misc/PackageManagement/Test/Src/AddPackageReferenceViewModelTests.cs
  6. 9
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageRepositoryFactory.cs
  7. 32
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementServiceTests.cs
  8. 2
      src/AddIns/Misc/PackageManagement/Test/Src/PackageUpdatesViewModelTests.cs

7
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs

@ -110,5 +110,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -110,5 +110,12 @@ namespace ICSharpCode.PackageManagement.Design
}
public PackageSource ActivePackageSource { get; set; }
public FakePackageRepository FakeAggregateRepository = new FakePackageRepository();
public IPackageRepository CreateAggregatePackageRepository()
{
return FakeAggregateRepository;
}
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementService.cs

@ -12,6 +12,7 @@ namespace ICSharpCode.PackageManagement @@ -12,6 +12,7 @@ namespace ICSharpCode.PackageManagement
event EventHandler PackageInstalled;
event EventHandler PackageUninstalled;
IPackageRepository CreateAggregatePackageRepository();
IPackageRepository ActivePackageRepository { get; }
IProjectManager ActiveProjectManager { get; }

18
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementService.cs

@ -125,5 +125,23 @@ namespace ICSharpCode.PackageManagement @@ -125,5 +125,23 @@ namespace ICSharpCode.PackageManagement
}
}
}
public IPackageRepository CreateAggregatePackageRepository()
{
IEnumerable<IPackageRepository> allRepositories = CreateAllRepositories();
return new AggregateRepository(allRepositories);
}
IEnumerable<IPackageRepository> CreateAllRepositories()
{
foreach (PackageSource source in options.PackageSources) {
yield return CreatePackageRepository(source);
}
}
IPackageRepository CreatePackageRepository(PackageSource source)
{
return packageRepositoryFactory.CreateRepository(source);
}
}
}

2
src/AddIns/Misc/PackageManagement/Project/Src/PackageUpdatesViewModel.cs

@ -35,7 +35,7 @@ namespace ICSharpCode.PackageManagement @@ -35,7 +35,7 @@ namespace ICSharpCode.PackageManagement
IQueryable<IPackage> GetUpdatedPackages(IQueryable<IPackage> localPackages)
{
IPackageRepository sourceRepository = packageManagementService.ActivePackageRepository;
IPackageRepository sourceRepository = packageManagementService.CreateAggregatePackageRepository();
return sourceRepository.GetUpdates(localPackages).AsQueryable();
}
}

4
src/AddIns/Misc/PackageManagement/Test/Src/AddPackageReferenceViewModelTests.cs

@ -79,11 +79,11 @@ namespace PackageManagement.Tests @@ -79,11 +79,11 @@ namespace PackageManagement.Tests
Id = "Test",
Version = new Version("2.0.0.0")
};
fakePackageManagementService.FakeActivePackageRepository.FakePackages.Add(newPackage);
fakePackageManagementService.FakeAggregateRepository.FakePackages.Add(newPackage);
CreateViewModel(fakePackageManagementService);
List<FakePackage> expectedPackages = fakePackageManagementService.FakeActivePackageRepository.FakePackages;
List<FakePackage> expectedPackages = fakePackageManagementService.FakeAggregateRepository.FakePackages;
PackageCollectionAssert.AreEqual(expectedPackages, viewModel.PackageUpdatesViewModel.PackageViewModels);
}

9
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageRepositoryFactory.cs

@ -15,10 +15,19 @@ namespace PackageManagement.Tests.Helpers @@ -15,10 +15,19 @@ namespace PackageManagement.Tests.Helpers
= new List<PackageSource>();
public FakePackageRepository FakePackageRepository = new FakePackageRepository();
public Dictionary<PackageSource, FakePackageRepository> FakePackageRepositories =
new Dictionary<PackageSource, FakePackageRepository>();
public IPackageRepository CreateRepository(PackageSource packageSource)
{
PackageSourcesPassedToCreateRepository.Add(packageSource);
FakePackageRepository repository = null;
if (FakePackageRepositories.TryGetValue(packageSource, out repository)) {
return repository;
}
return FakePackageRepository;
}

32
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementServiceTests.cs

@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.SharpDevelop.Project;
@ -350,5 +352,35 @@ namespace PackageManagement.Tests @@ -350,5 +352,35 @@ namespace PackageManagement.Tests
Assert.AreEqual(packageSource, packageManagementService.ActivePackageSource);
}
[Test]
public void CreateAggregatePackageRepository_TwoRegisteredPackageRepositories_ReturnsPackagesFromBothRepositories()
{
CreatePackageSources();
packageSourcesHelper.AddTwoPackageSources();
CreatePackageManagementService(packageSourcesHelper.Options);
var repository1Package = new FakePackage("One");
var repository1 = new FakePackageRepository();
repository1.FakePackages.Add(repository1Package);
fakePackageRepositoryFactory.FakePackageRepositories.Add(packageSourcesHelper.RegisteredPackageSources[0], repository1);
var repository2Package = new FakePackage("Two");
var repository2 = new FakePackageRepository();
repository2.FakePackages.Add(repository2Package);
fakePackageRepositoryFactory.FakePackageRepositories.Add(packageSourcesHelper.RegisteredPackageSources[1], repository2);
IPackageRepository repository = packageManagementService.CreateAggregatePackageRepository();
IQueryable<IPackage> packages = repository.GetPackages().OrderBy(x => x.Id);
var expectedPackages = new FakePackage[] {
repository1Package,
repository2Package
};
CollectionAssert.AreEqual(expectedPackages, packages);
}
}
}

2
src/AddIns/Misc/PackageManagement/Test/Src/PackageUpdatesViewModelTests.cs

@ -31,7 +31,7 @@ namespace PackageManagement.Tests @@ -31,7 +31,7 @@ namespace PackageManagement.Tests
FakePackage AddPackageToSourceRepository(string version)
{
var package = CreatePackage(version);
packageManagementService.FakeActivePackageRepository.FakePackages.Add(package);
packageManagementService.FakeAggregateRepository.FakePackages.Add(package);
return package;
}

Loading…
Cancel
Save