Browse Source

Support selecting the aggregate package repository when searching for packages in the Add Package Reference dialog.

pull/15/head
mrward 14 years ago
parent
commit
8108a74bbf
  1. 6
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementService.cs
  2. 9
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs
  3. 17
      src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs
  4. 33
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementServiceTests.cs

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

@ -97,7 +97,11 @@ namespace ICSharpCode.PackageManagement @@ -97,7 +97,11 @@ namespace ICSharpCode.PackageManagement
void CreateActivePackageRepository()
{
activePackageRepository = packageRepositoryCache.CreateRepository(ActivePackageSource);
if (ActivePackageSource.IsAggregate) {
activePackageRepository = CreateAggregatePackageRepository();
} else {
activePackageRepository = packageRepositoryCache.CreateRepository(ActivePackageSource);
}
}
public IProjectManager ActiveProjectManager {

9
src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs

@ -374,7 +374,14 @@ namespace ICSharpCode.PackageManagement @@ -374,7 +374,14 @@ namespace ICSharpCode.PackageManagement
public bool ShowPackageSources { get; set; }
public IEnumerable<PackageSource> PackageSources {
get { return packageManagementService.Options.PackageSources; }
get {
foreach (PackageSource packageSource in packageManagementService.Options.PackageSources) {
yield return packageSource;
}
if (packageManagementService.Options.PackageSources.HasMultiplePackageSources) {
yield return RegisteredPackageSourceSettings.AggregatePackageSource;
}
}
}
public PackageSource SelectedPackageSource {

17
src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs

@ -253,13 +253,26 @@ namespace PackageManagement.Tests @@ -253,13 +253,26 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageSources_TwoPackageSourcesInOptions_HasTwoRepositoriesInCollection()
public void PackageSources_TwoPackageSourcesInOptions_ReturnsTwoPackageSourcesPlusAggregatePackageSource()
{
CreatePackageManagementService();
AddTwoPackageSourcesToRegisteredSources();
CreateViewModel(packageManagementService);
var expectedPackageSources = packageManagementService.Options.PackageSources;
var expectedPackageSources = new List<PackageSource>(packageManagementService.Options.PackageSources);
expectedPackageSources.Add(RegisteredPackageSourceSettings.AggregatePackageSource);
PackageSourceCollectionAssert.AreEqual(expectedPackageSources, viewModel.PackageSources);
}
[Test]
public void PackageSources_OnePackageSourceInOptions_ReturnsOnePackageSource()
{
CreatePackageManagementService();
AddOnePackageSourceToRegisteredSources();
CreateViewModel(packageManagementService);
var expectedPackageSources = new List<PackageSource>(packageManagementService.Options.PackageSources);
PackageSourceCollectionAssert.AreEqual(expectedPackageSources, viewModel.PackageSources);
}

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

@ -561,7 +561,38 @@ namespace PackageManagement.Tests @@ -561,7 +561,38 @@ namespace PackageManagement.Tests
updatePackageHelper.UpdateTestPackage();
Assert.AreEqual(installPackageHelper.TestPackage, package);
}
[Test]
public void ActivePackageRepository_ActivePackageSourceIsAggregate_ReturnsAggregatePackageRepository()
{
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);
packageManagementService.ActivePackageSource = RegisteredPackageSourceSettings.AggregatePackageSource;
IPackageRepository repository = packageManagementService.ActivePackageRepository;
List<IPackage> packages = repository.GetPackages().OrderBy(x => x.Id).ToList();
var expectedPackages = new FakePackage[] {
repository1Package,
repository2Package
};
CollectionAssert.AreEqual(expectedPackages, packages);
}
}
}

Loading…
Cancel
Save