Browse Source

Fix index out of range exception in Package Sources option panel.

Disable move buttons if no package source selected.
pull/33/head
Matt Ward 13 years ago
parent
commit
c7e1cece1a
  1. 15
      src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSourcesViewModel.cs
  2. 24
      src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesViewModelTests.cs

15
src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSourcesViewModel.cs

@ -170,7 +170,7 @@ namespace ICSharpCode.PackageManagement @@ -170,7 +170,7 @@ namespace ICSharpCode.PackageManagement
}
public bool CanRemovePackageSource {
get { return selectedPackageSourceViewModel != null; }
get { return IsPackageSourceSelected(); }
}
void RemoveSelectedPackageSourceViewModel()
@ -192,10 +192,17 @@ namespace ICSharpCode.PackageManagement @@ -192,10 +192,17 @@ namespace ICSharpCode.PackageManagement
public bool CanMovePackageSourceUp {
get {
return HasAtLeastTwoPackageSources() && !IsFirstPackageSourceSelected();
return HasAtLeastTwoPackageSources() &&
IsPackageSourceSelected() &&
!IsFirstPackageSourceSelected();
}
}
bool IsPackageSourceSelected()
{
return selectedPackageSourceViewModel != null;
}
bool IsFirstPackageSourceSelected()
{
return selectedPackageSourceViewModel == packageSourceViewModels[0];
@ -210,7 +217,9 @@ namespace ICSharpCode.PackageManagement @@ -210,7 +217,9 @@ namespace ICSharpCode.PackageManagement
public bool CanMovePackageSourceDown {
get {
return HasAtLeastTwoPackageSources() && !IsLastPackageSourceSelected();
return HasAtLeastTwoPackageSources() &&
IsPackageSourceSelected() &&
!IsLastPackageSourceSelected();
}
}

24
src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesViewModelTests.cs

@ -445,6 +445,30 @@ namespace PackageManagement.Tests @@ -445,6 +445,30 @@ namespace PackageManagement.Tests
Assert.IsFalse(result);
}
[Test]
public void CanMovePackageSourceUp_TwoPackageSourcesAndNothingIsSelected_ReturnsFalse()
{
CreateViewModelWithTwoPackageSources();
viewModel.Load();
viewModel.SelectedPackageSourceViewModel = null;
bool result = viewModel.CanMovePackageSourceUp;
Assert.IsFalse(result);
}
[Test]
public void CanMovePackageSourceDown_TwoPackageSourcesAndNothingIsSelected_ReturnsFalse()
{
CreateViewModelWithTwoPackageSources();
viewModel.Load();
viewModel.SelectedPackageSourceViewModel = null;
bool result = viewModel.CanMovePackageSourceDown;
Assert.IsFalse(result);
}
[Test]
public void SelectedPackageSourceViewModel_PropertyChanged_FiresPropertyChangedEvent()
{

Loading…
Cancel
Save