コード例 #1
0
        FakePackageOperation AddFakeInstallPackageOperationWithPackage(FakeSelectedProject selectedProject, bool requireLicenseAcceptance)
        {
            FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation();

            operation.FakePackage.RequireLicenseAcceptance = requireLicenseAcceptance;
            return(operation);
        }
コード例 #2
0
        public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndTwoPackageOperationsRequireLicenseAcceptance_UserPromptedToAcceptLicensesForTwoPackages()
        {
            CreateViewModel();
            CreateTwoFakeSelectedProjects();
            FirstFakeSelectedProject.IsSelected = true;

            FakePackageOperation firstOperation =
                AddFakeInstallPackageOperationWithPackageThatRequiresLicenseAcceptance(FirstFakeSelectedProject);

            FakePackageOperation secondOperation =
                AddFakeInstallPackageOperationWithPackageThatRequiresLicenseAcceptance(FirstFakeSelectedProject);

            fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;

            viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);

            var expectedPackages = new FakePackage[] {
                firstOperation.FakePackage,
                secondOperation.FakePackage
            };

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

            CollectionAssert.AreEqual(expectedPackages, actualPackages);
        }
コード例 #3
0
        FakePackageOperation AddFakeUninstallPackageOperationWithPackageThatRequiresLicenseAcceptance(FakeSelectedProject selectedProject)
        {
            FakePackageOperation uninstallOperation = selectedProject.AddFakeUninstallPackageOperation();

            uninstallOperation.FakePackage.RequireLicenseAcceptance = true;
            return(uninstallOperation);
        }
コード例 #4
0
        public PackageOperation AddOneFakeUninstallPackageOperation()
        {
            var package   = new FakePackage("PackageToUninstall");
            var operation = new FakePackageOperation(package, PackageAction.Uninstall);

            FakeSolution.FakeProjectToReturnFromGetProject.FakeInstallOperations.Add(operation);
            return(operation);
        }
コード例 #5
0
        FakePackageOperation AddFakeInstallPackageOperationWithPackage(PackageManagementSelectedProject selectedProject, bool requireLicenseAcceptance)
        {
            var project = selectedProject.Project as FakePackageManagementProject;
            FakePackageOperation operation = project.AddFakeInstallOperation();

            operation.FakePackage.RequireLicenseAcceptance = requireLicenseAcceptance;
            return(operation);
        }
コード例 #6
0
        FakePackageOperation AddFakeUninstallPackageOperationWithPackageThatRequiresLicenseAcceptance(PackageManagementSelectedProject selectedProject)
        {
            var project = selectedProject.Project as FakePackageManagementProject;
            FakePackageOperation uninstallOperation = project.AddFakeUninstallOperation();

            uninstallOperation.FakePackage.RequireLicenseAcceptance = true;
            return(uninstallOperation);
        }
コード例 #7
0
        public PackageOperation AddOneFakeInstallPackageOperationForViewModelPackage()
        {
            var operation = new FakePackageOperation(FakePackage, PackageAction.Install);

            FakeSolution
            .FakeProjectToReturnFromGetProject
            .FakeInstallOperations
            .Add(operation);

            return(operation);
        }
コード例 #8
0
        public void HasPackageScriptsToRun_ProjectHasOnePackageOperation_DoesNotThrowNullReferenceException()
        {
            CreateAction();
            FakePackage package   = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");
            var         operation = new FakePackageOperation(package, PackageAction.Install);

            action.PackageId      = package.Id;
            action.PackageVersion = package.Version;
            fakeProject.FakeInstallOperations.Add(operation);

            Assert.DoesNotThrow(() => action.HasPackageScriptsToRun());
        }
コード例 #9
0
        public void HasPackageScriptsToRun_ProjectHasOnePackageOperation_PackageLocated()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");
            var         operation       = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);

            bool hasPackageScripts = action.HasPackageScriptsToRun();

            IPackage actualPackage = action.Package;

            Assert.AreEqual(expectedPackage, actualPackage);
        }
コード例 #10
0
        public void Execute_ProjectHasOnePackageInstallOperationThatHasALicenseToBeAccepted_PackagesPassedToLicenseAcceptanceService()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.RequireLicenseAcceptance = true;
            var expectedPackages = new IPackage [] { expectedPackage };
            var operation        = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);

            action.Execute();

            PackageCollectionAssert.AreEqual(expectedPackages, action.LicenseAcceptanceService.PackagesAccepted);
        }
コード例 #11
0
        public void ManagePackagesForSelectedProjects_OneInstallPackageOperationsRequiresLicenseAcceptanceButIsInstalledInSolutionAlready_UserIsNotPromptedToAcceptLicense()
        {
            CreateViewModel();
            CreateTwoFakeSelectedProjects();
            FirstFakeSelectedProject.IsSelected = true;

            FakePackageOperation installOperation =
                AddFakeInstallPackageOperationWithPackageThatRequiresLicenseAcceptance(FirstFakeSelectedProject);

            fakeSolution.FakeInstalledPackages.Add(installOperation.FakePackage);

            fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;

            viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);

            Assert.IsFalse(fakePackageManagementEvents.IsOnAcceptLicensesCalled);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        public void Execute_ProjectHasOnePackageInstallOperationThatHasALicenseToBeAcceptedAndLicensesNotAccepted_ExceptionThrown()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.RequireLicenseAcceptance = true;
            var operation = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            packageManagementEvents.AcceptLicenses += (sender, e) => {
                e.IsAccepted = false;
            };

            Exception ex = Assert.Throws(typeof(ApplicationException), () => action.Execute());

            Assert.AreEqual("Licenses not accepted.", ex.Message);
        }
コード例 #15
0
        public void Execute_ProjectHasOnePackageInstallOperationThatHasALicenseToBeAcceptedAndLicensesNotAccepted_LicenseAcceptanceServiceUsedAndExceptionThrown()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.RequireLicenseAcceptance = true;
            var expectedPackages = new IPackage [] { expectedPackage };
            var operation        = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            action.LicenseAcceptanceService.AcceptLicensesReturnValue = false;

            Exception ex = Assert.Throws(typeof(ApplicationException), () => action.Execute());

            Assert.AreEqual("Licenses not accepted.", ex.Message);
            PackageCollectionAssert.AreEqual(expectedPackages, action.LicenseAcceptanceService.PackagesAccepted);
        }
コード例 #16
0
        public void Execute_ProjectHasOnePackageInstallOperationThatHasALicenseToBeAcceptedButPackageInstalledAlready_NoAcceptLicensesEventIsRaised()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.RequireLicenseAcceptance = true;
            var operation = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            fakeProject.FakePackages.Add(expectedPackage);
            bool acceptLicensesEventRaised = false;

            packageManagementEvents.AcceptLicenses += (sender, e) => {
                acceptLicensesEventRaised = true;
            };

            action.Execute();

            Assert.IsFalse(acceptLicensesEventRaised);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        public void Execute_UpdateIfPackageDoesNotExistInProjectSetToFalseAndPackageDoesNotExistInProjectAndPackageRequiresLicenseAcceptance_PackageLicenseAcceptanceIsNotRequested()
        {
            CreateSolution();
            var package = new FakePackage("Test")
            {
                RequireLicenseAcceptance = true
            };

            action.Package = package;
            var operation = new FakePackageOperation(package, PackageAction.Install);

            action.PackageId      = package.Id;
            action.PackageVersion = package.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            action.UpdateIfPackageDoesNotExistInProject = false;
            action.Execute();

            bool updated = fakeProject.IsUpdatePackageCalled;

            Assert.IsFalse(updated);
            Assert.IsNull(action.LicenseAcceptanceService.PackagesAccepted);
        }
コード例 #19
0
        public void Execute_ProjectHasOnePackageInstallOperationThatHasALicenseToBeAccepted_AcceptLicensesEventRaised()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.RequireLicenseAcceptance = true;
            var expectedPackages = new IPackage [] { expectedPackage };
            var operation        = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            List <IPackage> actualPackages = null;

            packageManagementEvents.AcceptLicenses += (sender, e) => {
                e.IsAccepted   = true;
                actualPackages = e.Packages.ToList();
            };

            action.Execute();

            PackageCollectionAssert.AreEqual(expectedPackages, actualPackages);
        }
コード例 #20
0
        public void Execute_PackageBeingInstalledHasPowerShellScripts_WarningAboutPowerShellScriptsIsLogged()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.AddFile(@"tools\init.ps1");
            var operation = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            string messageLogged = null;

            packageManagementEvents.PackageOperationMessageLogged += (sender, e) => {
                if (e.Message.Level == MessageLevel.Warning)
                {
                    messageLogged = e.Message.ToString();
                }
            };

            action.Execute();

            Assert.AreEqual("Test Package contains PowerShell scripts which will not be run.", messageLogged);
        }
コード例 #21
0
        public void Execute_PackageBeingInstalledHasPowerShellScripts_MessageAboutPowerShellScriptsIsLogged()
        {
            CreateAction();
            FakePackage expectedPackage = fakeProject.FakeSourceRepository.AddFakePackageWithVersion("Test", "1.0");

            expectedPackage.AddFile(@"tools\init.ps1");
            var operation = new FakePackageOperation(expectedPackage, PackageAction.Install);

            action.PackageId      = expectedPackage.Id;
            action.PackageVersion = expectedPackage.Version;
            fakeProject.FakeInstallOperations.Add(operation);
            var messagesLogged = new List <string> ();

            packageManagementEvents.PackageOperationMessageLogged += (sender, e) => {
                if (e.Message.Level == MessageLevel.Info)
                {
                    messagesLogged.Add(e.Message.ToString());
                }
            };

            action.Execute();

            Assert.That(messagesLogged, Contains.Item("WARNING: Test Package contains PowerShell scripts which will not be run."));
        }