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
} }
public PackageSource ActivePackageSource { get; set; } 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
event EventHandler PackageInstalled; event EventHandler PackageInstalled;
event EventHandler PackageUninstalled; event EventHandler PackageUninstalled;
IPackageRepository CreateAggregatePackageRepository();
IPackageRepository ActivePackageRepository { get; } IPackageRepository ActivePackageRepository { get; }
IProjectManager ActiveProjectManager { get; } IProjectManager ActiveProjectManager { get; }

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

@ -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
IQueryable<IPackage> GetUpdatedPackages(IQueryable<IPackage> localPackages) IQueryable<IPackage> GetUpdatedPackages(IQueryable<IPackage> localPackages)
{ {
IPackageRepository sourceRepository = packageManagementService.ActivePackageRepository; IPackageRepository sourceRepository = packageManagementService.CreateAggregatePackageRepository();
return sourceRepository.GetUpdates(localPackages).AsQueryable(); return sourceRepository.GetUpdates(localPackages).AsQueryable();
} }
} }

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

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

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

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

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

@ -3,6 +3,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
@ -350,5 +352,35 @@ namespace PackageManagement.Tests
Assert.AreEqual(packageSource, packageManagementService.ActivePackageSource); 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
FakePackage AddPackageToSourceRepository(string version) FakePackage AddPackageToSourceRepository(string version)
{ {
var package = CreatePackage(version); var package = CreatePackage(version);
packageManagementService.FakeActivePackageRepository.FakePackages.Add(package); packageManagementService.FakeAggregateRepository.FakePackages.Add(package);
return package; return package;
} }

Loading…
Cancel
Save