Exemplo n.º 1
0
        void RemovePrigAssemblyCore(PrigViewModel vm, string deletionalInclude)
        {
            vm.BeginProjectWideProcessProgress(ProjectWideProcesses.PrigAssemblyRemoving);


            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);

            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(13u, profLoc);
            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, deletionalInclude);
                vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, deletionalInclude);
                return;
            }


            if (!vm.ConfirmRemovingPrigAssembly(deletionalInclude))
            {
                return;
            }


            var proj = MonitoringSelectionService.GetCurrentProject();


            var pwPkg = new ProjectWidePackage(Resources.NuGetRootPackageId, Resources.NuGetRootPackageVersion, proj);

            pwPkg.PackagePreparing      += () => vm.ReportPackagePreparingProgress(25u);
            pwPkg.PackageInstalling     += metadata => vm.ReportPackageInstallingProgress(50u, metadata);
            pwPkg.PackageInstalled      += metadata => vm.ReportPackageInstalledProgress(50u, metadata);
            pwPkg.PackageReferenceAdded += metadata => vm.ReportPackageReferenceAddedProgress(50u, metadata);
            ProjectWideInstaller.Install(pwPkg);


            var command = string.Format(
                @"
Import-Module ([IO.Path]::Combine($env:URASANDESU_PRIG_PACKAGE_FOLDER, 'tools\Urasandesu.Prig'))
Start-PrigSetup -DeletionalInclude {0} -Project $Project
", deletionalInclude);
            var mci = new ManagementCommandInfo(command, proj);

            mci.CommandExecuting += () => vm.ReportProcessingProjectWideProcessProgress(75u, deletionalInclude);
            mci.CommandExecuted  +=
                () =>
            {
                vm.ShowCompletedProjectWideProcessMessage(deletionalInclude);
                vm.EndCompletedProjectWideProcessProgress(deletionalInclude);
            };
            ManagementCommandExecutor.Execute(mci);
        }
Exemplo n.º 2
0
        public void Execute_should_execute_specified_PowerShell_command()
        {
            // Arrange
            var command    = @"
([System.Management.Automation.PSMemberTypes])
";
            var mci        = new ManagementCommandInfo(command);
            var mcExecutor = new ManagementCommandExecutor();


            // Act
            var results = mcExecutor.Execute(mci);


            // Assert
            Assert.AreEqual(typeof(PSMemberTypes), results[0].BaseObject);
        }
Exemplo n.º 3
0
        public void Execute_should_raise_the_event_to_execute_specified_PowerShell_command_before_and_after()
        {
            // Arrange
            var command = @"
([System.Management.Automation.PSMemberTypes])
";
            var mci     = new ManagementCommandInfo(command);
            var mocks   = new MockRepository(MockBehavior.Strict);
            var order   = new MockOrder();

            mci.CommandExecuting += mocks.InOrder <Action>(order, m => m.Setup(_ => _())).Object;
            mci.CommandExecuted  += mocks.InOrder <Action>(order, m => m.Setup(_ => _())).Object;

            var mcExecutor = new ManagementCommandExecutor();


            // Act
            mcExecutor.Execute(mci);


            // Assert
            mocks.VerifyAll();
        }