Browse Source

Show package sources drop down in updated packages tab.

Allow user to choose which package source when looking for updated packages.
pull/33/head
Matt Ward 13 years ago
parent
commit
199c8059b4
  1. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeRegisteredPackageRepositories.cs
  2. 6
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesView.xaml
  3. 9
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs
  4. 4
      src/AddIns/Misc/PackageManagement/Test/Src/ManagePackagesViewModelTests.cs
  5. 80
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

6
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeRegisteredPackageRepositories.cs

@ -70,9 +70,11 @@ namespace ICSharpCode.PackageManagement.Design @@ -70,9 +70,11 @@ namespace ICSharpCode.PackageManagement.Design
PackageSources.AddRange(sources);
}
public FakePackage AddFakePackageWithVersionToAggregrateRepository(string version)
public FakePackage AddFakePackageWithVersionToActiveRepository(string version)
{
return AddFakePackageWithVersionToAggregrateRepository("Test", version);
var package = FakePackage.CreatePackageWithVersion("Test", version);
FakeActiveRepository.FakePackages.Add(package);
return package;
}
public FakePackage AddFakePackageWithVersionToAggregrateRepository(string id, string version)

6
src/AddIns/Misc/PackageManagement/Project/Src/PackagesView.xaml

@ -310,7 +310,7 @@ @@ -310,7 +310,7 @@
<RowDefinition />
</Grid.RowDefinitions>
<Grid
Visibility="{Binding Path=IsSearchable, Converter={StaticResource BoolToVisibility}}">
Visibility="{Binding Path=ShowPackageSources, Converter={StaticResource BoolToVisibility}}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto"/>
@ -330,6 +330,7 @@ @@ -330,6 +330,7 @@
<TextBox
Grid.Row="1"
Grid.Column="0"
Visibility="{Binding Path=IsSearchable, Converter={StaticResource BoolToVisibility}}"
Text="{Binding Path=SearchTerms, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding
@ -340,7 +341,8 @@ @@ -340,7 +341,8 @@
<TextBlock
Grid.Row="1"
Grid.Column="1"
Margin="4">
Margin="4"
Visibility="{Binding Path=IsSearchable, Converter={StaticResource BoolToVisibility}}">
<Hyperlink
TextDecorations="{x:Null}"
Command="{Binding Path=SearchCommand}">

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

@ -18,7 +18,7 @@ namespace ICSharpCode.PackageManagement @@ -18,7 +18,7 @@ namespace ICSharpCode.PackageManagement
public UpdatedPackagesViewModel(
IPackageManagementSolution solution,
IRegisteredPackageRepositories registeredPackageRepositories,
UpdatedPackageViewModelFactory packageViewModelFactory,
UpdatedPackageViewModelFactory packageViewModelFactory,
ITaskFactory taskFactory)
: base(
registeredPackageRepositories,
@ -26,14 +26,15 @@ namespace ICSharpCode.PackageManagement @@ -26,14 +26,15 @@ namespace ICSharpCode.PackageManagement
taskFactory)
{
this.selectedProjects = new PackageManagementSelectedProjects(solution);
ShowPackageSources = registeredPackageRepositories.HasMultiplePackageSources;
}
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
{
try {
IPackageRepository aggregateRepository = RegisteredPackageRepositories.CreateAggregateRepository();
IQueryable<IPackage> installedPackages = GetInstalledPackages(aggregateRepository);
updatedPackages = new UpdatedPackages(installedPackages, aggregateRepository);
IPackageRepository repository = RegisteredPackageRepositories.ActiveRepository;
IQueryable<IPackage> installedPackages = GetInstalledPackages(repository);
updatedPackages = new UpdatedPackages(installedPackages, repository);
} catch (Exception ex) {
errorMessage = ex.Message;
}

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

@ -175,11 +175,11 @@ namespace PackageManagement.Tests @@ -175,11 +175,11 @@ namespace PackageManagement.Tests
Id = "Test",
Version = new SemanticVersion("2.0.0.0")
};
fakeRegisteredPackageRepositories.FakeAggregateRepository.FakePackages.Add(newPackage);
fakeRegisteredPackageRepositories.FakeActiveRepository.FakePackages.Add(newPackage);
CreateViewModel(fakeSolution);
List<FakePackage> expectedPackages = fakeRegisteredPackageRepositories.FakeAggregateRepository.FakePackages;
List<FakePackage> expectedPackages = fakeRegisteredPackageRepositories.FakeActiveRepository.FakePackages;
PackageCollectionAssert.AreEqual(expectedPackages, viewModel.UpdatedPackagesViewModel.PackageViewModels);
}

80
src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@ -36,9 +37,14 @@ namespace PackageManagement.Tests @@ -36,9 +37,14 @@ namespace PackageManagement.Tests
}
void CreateViewModel(FakePackageManagementSolution solution)
{
CreateRegisteredPackageRepositories();
CreateViewModel(solution, registeredPackageRepositories);
}
void CreateViewModel(FakePackageManagementSolution solution, FakeRegisteredPackageRepositories registeredPackageRepositories)
{
taskFactory = new FakeTaskFactory();
registeredPackageRepositories = new FakeRegisteredPackageRepositories();
var packageViewModelFactory = new FakePackageViewModelFactory();
var updatedPackageViewModelFactory = new UpdatedPackageViewModelFactory(packageViewModelFactory);
viewModel = new UpdatedPackagesViewModel(
@ -48,6 +54,17 @@ namespace PackageManagement.Tests @@ -48,6 +54,17 @@ namespace PackageManagement.Tests
taskFactory);
}
void CreateRegisteredPackageRepositories()
{
registeredPackageRepositories = new FakeRegisteredPackageRepositories();
}
void CreateViewModel(FakeRegisteredPackageRepositories registeredPackageRepositories)
{
CreateSolution();
CreateViewModel(solution, registeredPackageRepositories);
}
void CreateExceptionThrowingSolution()
{
exceptionThrowingSolution = new ExceptionThrowingPackageManagementSolution();
@ -66,9 +83,9 @@ namespace PackageManagement.Tests @@ -66,9 +83,9 @@ namespace PackageManagement.Tests
return package;
}
FakePackage AddPackageToAggregateRepository(string version)
FakePackage AddPackageToActiveRepository(string version)
{
return registeredPackageRepositories.AddFakePackageWithVersionToAggregrateRepository(version);
return registeredPackageRepositories.AddFakePackageWithVersionToActiveRepository(version);
}
FakePackage AddPackageToSolution(string version)
@ -78,12 +95,35 @@ namespace PackageManagement.Tests @@ -78,12 +95,35 @@ namespace PackageManagement.Tests
return package;
}
void AddOnePackageSourceToRegisteredSources()
{
registeredPackageRepositories.ClearPackageSources();
registeredPackageRepositories.AddOnePackageSource();
registeredPackageRepositories.HasMultiplePackageSources = false;
}
void AddTwoPackageSourcesToRegisteredSources()
{
var expectedPackageSources = new PackageSource[] {
new PackageSource("http://first.com", "First"),
new PackageSource("http://second.com", "Second")
};
AddPackageSourcesToRegisteredSources(expectedPackageSources);
registeredPackageRepositories.HasMultiplePackageSources = true;
}
void AddPackageSourcesToRegisteredSources(PackageSource[] sources)
{
registeredPackageRepositories.ClearPackageSources();
registeredPackageRepositories.AddPackageSources(sources);
}
[Test]
public void ReadPackages_OneNewerPackageVersionAvailable_NewerPackageVersionDisplayed()
{
CreateViewModel();
AddPackageToLocalRepository("1.0.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0.0");
viewModel.ReadPackages();
CompleteReadPackagesTask();
@ -100,8 +140,8 @@ namespace PackageManagement.Tests @@ -100,8 +140,8 @@ namespace PackageManagement.Tests
{
CreateViewModel();
AddPackageToLocalRepository("1.0.0.0");
AddPackageToAggregateRepository("1.0.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0");
AddPackageToActiveRepository("1.0.0.0");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0.0");
viewModel.ReadPackages();
CompleteReadPackagesTask();
@ -118,7 +158,7 @@ namespace PackageManagement.Tests @@ -118,7 +158,7 @@ namespace PackageManagement.Tests
{
CreateViewModel();
AddPackageToLocalRepository("1.0.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0.0");
viewModel.ReadPackages();
@ -148,7 +188,7 @@ namespace PackageManagement.Tests @@ -148,7 +188,7 @@ namespace PackageManagement.Tests
NoProjectsSelected();
CreateViewModel(solution);
AddPackageToSolution("1.0.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0.0");
viewModel.ReadPackages();
CompleteReadPackagesTask();
@ -167,7 +207,7 @@ namespace PackageManagement.Tests @@ -167,7 +207,7 @@ namespace PackageManagement.Tests
NoProjectsSelected();
CreateViewModel(solution);
AddPackageToSolution("1.0.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0.0");
viewModel.ReadPackages();
CompleteReadPackagesTask();
@ -192,12 +232,32 @@ namespace PackageManagement.Tests @@ -192,12 +232,32 @@ namespace PackageManagement.Tests
CreateViewModel();
AddPackageToLocalRepository("1.0.0");
FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0-alpha");
FakePackage newerPackage = AddPackageToActiveRepository("1.1.0-alpha");
viewModel.ReadPackages();
CompleteReadPackagesTask();
Assert.AreEqual(0, viewModel.PackageViewModels.Count);
}
[Test]
public void ShowSources_TwoPackageSources_ReturnsTrue()
{
CreateRegisteredPackageRepositories();
AddTwoPackageSourcesToRegisteredSources();
CreateViewModel(registeredPackageRepositories);
Assert.IsTrue(viewModel.ShowPackageSources);
}
[Test]
public void ShowPackageSources_OnePackageSources_ReturnsFalse()
{
CreateRegisteredPackageRepositories();
AddOnePackageSourceToRegisteredSources();
CreateViewModel(registeredPackageRepositories);
Assert.IsFalse(viewModel.ShowPackageSources);
}
}
}

Loading…
Cancel
Save