Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 366b443

Browse files
committed
Fix exception when switching to invalid NuGet package source url.
1 parent 47b606c commit 366b443

4 files changed

Lines changed: 37 additions & 8 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
6868
try {
6969
repository = RegisteredPackageRepositories.ActiveRepository;
7070
} catch (Exception ex) {
71+
repository = null;
7172
errorMessage = ex.Message;
7273
}
7374
}

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

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ public void GetAllPackages_OnePackageInRepository_RepositoryNotCreatedByBackgrou
385385
public void ReadPackages_ExceptionThrownWhenAccessingActiveRepository_ErrorMessageFromExceptionNotOverriddenByReadPackagesCall()
386386
{
387387
CreateExceptionThrowingRegisteredPackageRepositories();
388-
exceptionThrowingRegisteredPackageRepositories.ExeptionToThrowWhenActiveRepositoryAccessed =
388+
exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
389389
new Exception("Test");
390390
CreateViewModel(exceptionThrowingRegisteredPackageRepositories);
391391
viewModel.ReadPackages();
@@ -621,5 +621,33 @@ public void GetPackagesFromPackageSource_RepositoryHasThreePackagesWithSameIdBut
621621
};
622622
PackageCollectionAssert.AreEqual(expectedPackages, allPackages);
623623
}
624+
625+
[Test]
626+
public void ReadPackages_ActiveRepositoryChangedWhichUsesInvalidUrl_InvalidUrlExceptionIsShownAsErrorMessage()
627+
{
628+
CreateExceptionThrowingRegisteredPackageRepositories();
629+
CreateViewModel(exceptionThrowingRegisteredPackageRepositories);
630+
var package = new FakePackage("Test", "0.1.0.0");
631+
exceptionThrowingRegisteredPackageRepositories
632+
.FakeActiveRepository
633+
.FakePackages
634+
.Add(package);
635+
viewModel.ReadPackages();
636+
CompleteReadPackagesTask();
637+
taskFactory.ClearAllFakeTasks();
638+
exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
639+
new Exception("Invalid url");
640+
641+
viewModel.ReadPackages();
642+
FakeTask<PackagesForSelectedPageResult> task = taskFactory.FirstFakeTaskCreated;
643+
ApplicationException ex = Assert.Throws<ApplicationException>(() => task.ExecuteTaskButNotContinueWith());
644+
task.Exception = new AggregateException(ex);
645+
task.IsFaulted = true;
646+
task.ExecuteContinueWith();
647+
648+
Assert.AreEqual("Invalid url", ex.Message);
649+
Assert.IsTrue(viewModel.HasError);
650+
Assert.AreEqual("Invalid url", viewModel.ErrorMessage);
651+
}
624652
}
625653
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,23 @@ namespace PackageManagement.Tests.Helpers
2525
{
2626
public class ExceptionThrowingRegisteredPackageRepositories : FakeRegisteredPackageRepositories
2727
{
28-
public Exception ExeptionToThrowWhenActiveRepositoryAccessed { get; set; }
28+
public Exception ExceptionToThrowWhenActiveRepositoryAccessed { get; set; }
2929

3030
public override IPackageRepository ActiveRepository {
3131
get {
32-
if (ExeptionToThrowWhenActiveRepositoryAccessed != null) {
33-
throw ExeptionToThrowWhenActiveRepositoryAccessed;
32+
if (ExceptionToThrowWhenActiveRepositoryAccessed != null) {
33+
throw ExceptionToThrowWhenActiveRepositoryAccessed;
3434
}
3535
return base.ActiveRepository;
3636
}
3737
}
3838

39-
public Exception ExeptionToThrowWhenRecentPackageRepositoryAccessed { get; set; }
39+
public Exception ExceptionToThrowWhenRecentPackageRepositoryAccessed { get; set; }
4040

4141
public override IRecentPackageRepository RecentPackageRepository {
4242
get {
43-
if (ExeptionToThrowWhenRecentPackageRepositoryAccessed != null) {
44-
throw ExeptionToThrowWhenRecentPackageRepositoryAccessed;
43+
if (ExceptionToThrowWhenRecentPackageRepositoryAccessed != null) {
44+
throw ExceptionToThrowWhenRecentPackageRepositoryAccessed;
4545
}
4646
return base.RecentPackageRepository;
4747
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void PackageViewModels_PackageIsInstalledAfterViewModelIsDisposed_Package
143143
public void ReadPackages_ExceptionThrownWhenAccessingActiveRepository_ErrorMessageFromExceptionNotOverriddenByReadPackagesCall()
144144
{
145145
var registeredRepositories = new ExceptionThrowingRegisteredPackageRepositories();
146-
registeredRepositories.ExeptionToThrowWhenRecentPackageRepositoryAccessed =
146+
registeredRepositories.ExceptionToThrowWhenRecentPackageRepositoryAccessed =
147147
new Exception("Test");
148148
CreateViewModel(registeredRepositories);
149149

0 commit comments

Comments
 (0)