FakePackageOperation AddFakeInstallPackageOperationWithPackage(FakeSelectedProject selectedProject, bool requireLicenseAcceptance)
        {
            FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation();

            operation.FakePackage.RequireLicenseAcceptance = requireLicenseAcceptance;
            return(operation);
        }
        public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndPackageOperationRequiresLicenseAcceptance_PrereleaseVersionsAreNotAllowed()
        {
            CreateViewModel();
            CreateTwoFakeSelectedProjects();
            FakeSelectedProject selectedProject = fakeSelectedProjects[0];

            selectedProject.IsSelected = true;
            FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation();

            operation.FakePackage.RequireLicenseAcceptance          = true;
            fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;

            viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);

            bool allowed = selectedProject.FakeProject.AllowPrereleaseVersionsPassedToGetInstallPackageOperations;

            Assert.IsFalse(allowed);
        }
        public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndPackageOperationRequiresLicenseAcceptance_PackageInViewModelUsedToGetPackageOperations()
        {
            CreateViewModel();
            CreateTwoFakeSelectedProjects();
            FakeSelectedProject selectedProject = fakeSelectedProjects[0];

            selectedProject.IsSelected = true;
            FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation();

            operation.FakePackage.RequireLicenseAcceptance          = true;
            fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;

            viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);

            IPackage actualPackage = selectedProject.FakeProject.PackagePassedToGetInstallPackageOperations;

            Assert.AreEqual(fakePackage, actualPackage);
        }
        public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndPackageOperationRequiresLicenseAcceptance_UserPromptedToAcceptLicenses()
        {
            CreateViewModel();
            CreateTwoFakeSelectedProjects();
            FakeSelectedProject selectedProject = fakeSelectedProjects[0];

            selectedProject.IsSelected = true;
            FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation();

            operation.FakePackage.RequireLicenseAcceptance          = true;
            fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;

            viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);

            var expectedPackages = new FakePackage[] {
                operation.FakePackage
            };

            List <IPackage> actualPackages = fakePackageManagementEvents.GetPackagesPassedToOnAcceptLicensesAsList();

            CollectionAssert.AreEqual(expectedPackages, actualPackages);
        }