Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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());
        }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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());
        }
Exemplo n.º 14
0
        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);
 }