public async Task CheckForUpdates_NoPackagesUpdated_DoesNotReturnNullUpdatedPackagesForProject() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); Assert.AreEqual(project.Project, updatedPackages.Project); Assert.IsNotNull(updatedPackages.Project); Assert.AreEqual(0, updatedPackages.GetPackages().Count()); }
public async Task GetUpdatedPackages_TwoPackagesInstalledOneUpdatedAndUpdatesAvailableForBoth_OneUpdateAvailable() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("One", "1.0"); project.AddPackageReference("Two", "1.0"); packageMetadataResource.AddPackageMetadata("One", "1.1"); packageMetadataResource.AddPackageMetadata("Two", "1.1"); await CheckForUpdates(); project.InstalledPackages.Clear(); project.AddPackageReference("One", "1.1"); project.AddPackageReference("Two", "1.0"); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); int updatedPackagesCountBeforeUpdating = updatedPackages.GetPackages().Count(); updatedPackages.RemoveUpdatedPackages(project.InstalledPackages); Assert.AreEqual(2, updatedPackagesCountBeforeUpdating); Assert.AreEqual(1, updatedPackages.GetPackages().Count()); Assert.AreEqual("Two", updatedPackages.GetPackages().FirstOrDefault().Id); }
public async Task CheckForUpdates_ProjectHasPreReleasePackageWhichHasUpdatedStablePackage_OneStableUpdateFound() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0.1-alpha"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.0.1"); await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); Assert.AreEqual(1, updatedPackages.GetPackages().Count()); Assert.AreEqual("MyPackage", updatedPackages.GetPackages().First().Id); Assert.AreEqual("1.0.1", updatedPackages.GetPackages().First().Version.ToString()); }
public async Task CheckForUpdates_NoPackagesUpdated_UpdatedPackagesAvailableEventIsNotFired() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); bool fired = false; packageManagementEvents.UpdatedPackagesAvailable += (sender, e) => { fired = true; }; await CheckForUpdates(); Assert.IsFalse(fired); }
public async Task GetUpdatedPackages_PackageReferenceHasNoVersion_NoUpdatedPackagesFoundForProject() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", version: null); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); Assert.AreEqual(project.Project, updatedPackages.Project); Assert.IsNotNull(updatedPackages.Project); Assert.AreEqual(0, updatedPackages.GetPackages().Count()); Assert.AreEqual(0, errorsLogged.Count); }
public async Task CheckForUpdates_OnePackageUpdated_UpdatedPackagesAvailableEventIsFired() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); bool updatesAvailableEventFired = false; packageManagementEvents.UpdatedPackagesAvailable += (sender, e) => { updatesAvailableEventFired = true; }; await CheckForUpdates(); Assert.IsTrue(updatesAvailableEventFired); }
public async Task Clear_OnePackageUpdatedButEverythingCleared_NoUpdatedPackagesFoundForProject() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); await CheckForUpdates(); updatedPackagesInWorkspace.Clear(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); Assert.AreEqual(project.Project, updatedPackages.Project); Assert.IsNotNull(updatedPackages.Project); Assert.AreEqual(0, updatedPackages.GetPackages().Count()); }
public async Task GetUpdatedPackages_OnePackageUpdatedAndPackageIsUninstalled_NoUpdatesAvailableForUninstalledPackage() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); await CheckForUpdates(); project.InstalledPackages.Clear(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); int updatedPackagesCountBeforeUpdating = updatedPackages.GetPackages().Count(); updatedPackages.RemoveUpdatedPackages(project.InstalledPackages); Assert.AreEqual(1, updatedPackagesCountBeforeUpdating); Assert.AreEqual(0, updatedPackages.GetPackages().Count()); }
public async Task CheckForUpdates_OnePackageUpdatedButSolutionClosedBeforeResultsReturned_UpdatedPackagesAvailableEventIsNotFiredAndNoPackageUpdatesAvailable() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); bool fired = false; packageManagementEvents.UpdatedPackagesAvailable += (sender, e) => { fired = true; }; taskRunner.AfterCheckForUpdatesAction = () => { updatedPackagesInWorkspace.Clear(); }; await CheckForUpdates(); Assert.IsFalse(fired); Assert.IsFalse(updatedPackagesInWorkspace.AnyUpdates()); }
public async Task CheckForUpdates_OnePackageUpdated_OneUpdatedPackageFoundForProject() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.2"); var updatedPackage = packageMetadataResource.AddPackageMetadata("MyPackage", "1.2").Identity; var expectedPackages = new [] { updatedPackage }; await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); Assert.AreEqual(project.Project, updatedPackages.Project); Assert.IsNotNull(updatedPackages.Project); CollectionAssert.AreEqual(expectedPackages, updatedPackages.GetPackages()); }
public async Task CheckForUpdates_TwoSourceRepositoriesAndFirstOneThrowsException_UpdatedPackageFoundFromNonFailingSourceRepository() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); var ex = new ApplicationException("Error"); var sourceRepository = CreateExceptionThrowingSourceRepository(ex); taskRunner.SolutionManager.SourceRepositoryProvider.Repositories.Insert(0, sourceRepository); await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); var package = updatedPackages.GetPackages().Single(); Assert.AreEqual("MyPackage", package.Id); Assert.AreEqual("1.1", package.Version.ToString()); }
public async Task GetUpdatedPackages_OnePackageUpdatedSameUnderlyingDotNetProjectButDifferentProxy_OneUpdatedPackageFoundForProject() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); var updatedPackage = packageMetadataResource.AddPackageMetadata("MyPackage", "1.1").Identity; var expectedPackages = new [] { updatedPackage }; var newProject = new FakeDotNetProject(); dotNetProject.EqualsAction = p => { return(p == newProject); }; await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(newProject); Assert.IsNotNull(updatedPackages.Project); CollectionAssert.AreEqual(expectedPackages, updatedPackages.GetPackages()); Assert.AreNotEqual(newProject, updatedPackages.Project); }
public async Task GetUpdatedPackages_OnePackageReferencedWithConstraintAndUpdatesAvailable_LatestVersionReturnedBasedOnConstraint() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); var versionRange = new VersionRange( minVersion: new NuGetVersion("1.0"), includeMinVersion: true, maxVersion: new NuGetVersion("2.0"), includeMaxVersion: true); project.AddPackageReference("Test", "1.0", versionRange); var package = packageMetadataResource.AddPackageMetadata("Test", "2.0").Identity; packageMetadataResource.AddPackageMetadata("Test", "3.0"); var expectedPackages = new [] { package }; await CheckForUpdates(); var updatedPackages = updatedPackagesInWorkspace.GetUpdatedPackages(dotNetProject); CollectionAssert.AreEqual(expectedPackages, updatedPackages.GetPackages()); }
public async Task GetUpdatedPackages_SecondSolutionOpenedWhilstCheckingForUpdatesForFirstSolution_UpdatesFoundForProjectsInBothSolutions() { CreateUpdatedPackagesInWorkspace(); FakeNuGetProject project = AddNuGetProjectToSolution(); project.AddPackageReference("MyPackage", "1.0"); packageMetadataResource.AddPackageMetadata("MyPackage", "1.1"); packageMetadataResource.AddPackageMetadata("AnotherPackage", "1.2"); var firstDotNetProject = dotNetProject; FakeDotNetProject secondDotNetProject = null; taskRunner.AfterCheckForUpdatesAction = () => { if (secondDotNetProject == null) { solution = new FakeSolution(); FakeNuGetProject anotherProject = AddNuGetProjectToSolution(); anotherProject.AddPackageReference("AnotherPackage", "0.1"); secondDotNetProject = dotNetProject; updatedPackagesInWorkspace.CheckForUpdates(solution); } }; await CheckForUpdates(); // Wait for second solution checks. await taskRunner.CheckForUpdatesTask; var updatedPackagesForProjectInFirstSolution = updatedPackagesInWorkspace.GetUpdatedPackages(firstDotNetProject); var updatedPackagesForProjectInSecondSolution = updatedPackagesInWorkspace.GetUpdatedPackages(secondDotNetProject); Assert.AreEqual(1, updatedPackagesForProjectInFirstSolution.GetPackages().Count()); Assert.AreEqual("MyPackage", updatedPackagesForProjectInFirstSolution.GetPackages().First().Id); Assert.AreEqual("1.1", updatedPackagesForProjectInFirstSolution.GetPackages().First().Version.ToString()); Assert.AreEqual(1, updatedPackagesForProjectInSecondSolution.GetPackages().Count()); Assert.AreEqual("AnotherPackage", updatedPackagesForProjectInSecondSolution.GetPackages().First().Id); Assert.AreEqual("1.2", updatedPackagesForProjectInSecondSolution.GetPackages().First().Version.ToString()); }
void AddPackageToProject(string packageId, string version) { nugetProject.AddPackageReference(packageId, version); }