Browse Source

Fix exception when switching to invalid NuGet package source url.

pull/478/head
Matt Ward 12 years ago
parent
commit
366b4438ea
  1. 1
      src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs
  2. 30
      src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs
  3. 12
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ExceptionThrowingRegisteredPackageRepositories.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Test/Src/RecentPackagesViewModelTests.cs

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

@ -68,6 +68,7 @@ namespace ICSharpCode.PackageManagement @@ -68,6 +68,7 @@ namespace ICSharpCode.PackageManagement
try {
repository = RegisteredPackageRepositories.ActiveRepository;
} catch (Exception ex) {
repository = null;
errorMessage = ex.Message;
}
}

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

@ -385,7 +385,7 @@ namespace PackageManagement.Tests @@ -385,7 +385,7 @@ namespace PackageManagement.Tests
public void ReadPackages_ExceptionThrownWhenAccessingActiveRepository_ErrorMessageFromExceptionNotOverriddenByReadPackagesCall()
{
CreateExceptionThrowingRegisteredPackageRepositories();
exceptionThrowingRegisteredPackageRepositories.ExeptionToThrowWhenActiveRepositoryAccessed =
exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
new Exception("Test");
CreateViewModel(exceptionThrowingRegisteredPackageRepositories);
viewModel.ReadPackages();
@ -621,5 +621,33 @@ namespace PackageManagement.Tests @@ -621,5 +621,33 @@ namespace PackageManagement.Tests
};
PackageCollectionAssert.AreEqual(expectedPackages, allPackages);
}
[Test]
public void ReadPackages_ActiveRepositoryChangedWhichUsesInvalidUrl_InvalidUrlExceptionIsShownAsErrorMessage()
{
CreateExceptionThrowingRegisteredPackageRepositories();
CreateViewModel(exceptionThrowingRegisteredPackageRepositories);
var package = new FakePackage("Test", "0.1.0.0");
exceptionThrowingRegisteredPackageRepositories
.FakeActiveRepository
.FakePackages
.Add(package);
viewModel.ReadPackages();
CompleteReadPackagesTask();
taskFactory.ClearAllFakeTasks();
exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
new Exception("Invalid url");
viewModel.ReadPackages();
FakeTask<PackagesForSelectedPageResult> task = taskFactory.FirstFakeTaskCreated;
ApplicationException ex = Assert.Throws<ApplicationException>(() => task.ExecuteTaskButNotContinueWith());
task.Exception = new AggregateException(ex);
task.IsFaulted = true;
task.ExecuteContinueWith();
Assert.AreEqual("Invalid url", ex.Message);
Assert.IsTrue(viewModel.HasError);
Assert.AreEqual("Invalid url", viewModel.ErrorMessage);
}
}
}

12
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ExceptionThrowingRegisteredPackageRepositories.cs

@ -25,23 +25,23 @@ namespace PackageManagement.Tests.Helpers @@ -25,23 +25,23 @@ namespace PackageManagement.Tests.Helpers
{
public class ExceptionThrowingRegisteredPackageRepositories : FakeRegisteredPackageRepositories
{
public Exception ExeptionToThrowWhenActiveRepositoryAccessed { get; set; }
public Exception ExceptionToThrowWhenActiveRepositoryAccessed { get; set; }
public override IPackageRepository ActiveRepository {
get {
if (ExeptionToThrowWhenActiveRepositoryAccessed != null) {
throw ExeptionToThrowWhenActiveRepositoryAccessed;
if (ExceptionToThrowWhenActiveRepositoryAccessed != null) {
throw ExceptionToThrowWhenActiveRepositoryAccessed;
}
return base.ActiveRepository;
}
}
public Exception ExeptionToThrowWhenRecentPackageRepositoryAccessed { get; set; }
public Exception ExceptionToThrowWhenRecentPackageRepositoryAccessed { get; set; }
public override IRecentPackageRepository RecentPackageRepository {
get {
if (ExeptionToThrowWhenRecentPackageRepositoryAccessed != null) {
throw ExeptionToThrowWhenRecentPackageRepositoryAccessed;
if (ExceptionToThrowWhenRecentPackageRepositoryAccessed != null) {
throw ExceptionToThrowWhenRecentPackageRepositoryAccessed;
}
return base.RecentPackageRepository;
}

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

@ -143,7 +143,7 @@ namespace PackageManagement.Tests @@ -143,7 +143,7 @@ namespace PackageManagement.Tests
public void ReadPackages_ExceptionThrownWhenAccessingActiveRepository_ErrorMessageFromExceptionNotOverriddenByReadPackagesCall()
{
var registeredRepositories = new ExceptionThrowingRegisteredPackageRepositories();
registeredRepositories.ExeptionToThrowWhenRecentPackageRepositoryAccessed =
registeredRepositories.ExceptionToThrowWhenRecentPackageRepositoryAccessed =
new Exception("Test");
CreateViewModel(registeredRepositories);

Loading…
Cancel
Save