public void CanUpdatePackages_HasPackages_NuGetAwareProject()
        {
            var nugetAwareProject = new FakeNuGetAwareProject();

            // No packages.
            bool canUpdate   = nugetAwareProject.CanUpdatePackages();
            bool hasPackages = nugetAwareProject.HasPackages();

            Assert.IsFalse(canUpdate);
            Assert.IsFalse(hasPackages);

            // Project has packages.
            nugetAwareProject.HasPackagesReturnValue = true;

            canUpdate   = nugetAwareProject.CanUpdatePackages();
            hasPackages = nugetAwareProject.HasPackages();
            Assert.IsTrue(canUpdate);
            Assert.IsTrue(hasPackages);
        }
        public void NuGetAwareProject()
        {
            var project  = new FakeNuGetAwareProject();
            var solution = new Solution();

            solution.RootFolder.AddItem(project);

            // No packages in project.
            project.HasPackagesReturnValue = false;

            // Project selected.
            restorePackagesHandler.RunUpdate(solution, project);
            Assert.IsFalse(restorePackagesHandler.Enabled);

            restorePackagesInProjectHandler.RunUpdate(solution, project);
            Assert.IsFalse(restorePackagesInProjectHandler.Enabled);

            // Solution only selected
            restorePackagesHandler.RunUpdate(solution, project: null);
            Assert.IsFalse(restorePackagesHandler.Enabled);

            restorePackagesInProjectHandler.RunUpdate(solution, project: null);
            Assert.IsFalse(restorePackagesInProjectHandler.Enabled, "Should be false - no project selected");

            // Project has packages.
            project.HasPackagesReturnValue = true;

            // Project selected.
            restorePackagesHandler.RunUpdate(solution, project);
            Assert.IsTrue(restorePackagesHandler.Enabled);

            restorePackagesInProjectHandler.RunUpdate(solution, project);
            Assert.IsTrue(restorePackagesInProjectHandler.Enabled);

            // Solution only selected
            restorePackagesHandler.RunUpdate(solution, project: null);
            Assert.IsTrue(restorePackagesHandler.Enabled);

            restorePackagesInProjectHandler.RunUpdate(solution, project: null);
            Assert.IsFalse(restorePackagesInProjectHandler.Enabled, "Should be false - no project selected");
        }