public void ReportPackageReferenceAddedProgress_should_report_the_progress_to_statusbar()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog = fixture.Create <uint>();
            var id   = fixture.Create <string>();
            {
                var m = new Mock <IVsPackageMetadata>(MockBehavior.Strict);
                m.Setup(_ => _.Id).Returns(id);
                fixture.Inject(m);
            }

            var vm = new PrigViewModel();

            // Act
            vm.ReportPackageReferenceAddedProgress(prog, fixture.Freeze <IVsPackageMetadata>());


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(prog, progState.Value);
            Assert.That(progState.Label, Is.StringMatching(id));
        }
        public void ReportDefaultSourceProcessingProgress_should_report_the_progress_to_statusbar(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog    = fixture.Create <uint>();
            var pkgName = fixture.Create <string>();
            var src     = fixture.Create <string>();

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.ReportPrigSourceProcessingProgress(prog, pkgName, src);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(prog, progState.Value);
            Assert.That(progState.Label, Is.StringMatching(string.Format("({0})|({1})", pkgName, src)));
        }
        public void ReportProfilerProcessingProgress_should_report_the_progress_to_statusbar(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog             = fixture.Create <uint>();
            var pathOfInstalling = fixture.Create <string>();
            var profLoc          = new ProfilerLocation(RegistryView.Registry64, pathOfInstalling);

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.ReportProfilerProcessingProgress(prog, profLoc);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(prog, progState.Value);
            Assert.That(progState.Label, Is.StringMatching(pathOfInstalling));
        }
        public void EndSkippedProjectWideProcessProgress_should_report_the_progress_to_statusbar(
            [Values(
                 ProjectWideProcesses.PrigAssemblyAdding,
                 ProjectWideProcesses.PrigIndirectionSettingsEditing,
                 ProjectWideProcesses.PrigAssemblyRemoving,
                 ProjectWideProcesses.TestAdapterEnabling,
                 ProjectWideProcesses.TestAdapterDisabling)]
            ProjectWideProcesses pwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var include = fixture.Create <string>();

            var vm = new PrigViewModel();

            vm.BeginProjectWideProcessProgress(pwProc);


            // Act
            vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, include);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(0u, progState.Value);
            Assert.IsNullOrEmpty(progState.Label);
            Assert.IsNotNullOrEmpty(vm.Statusbar.Text.Value);
        }
        public void ShowSkippedProjectWideProcessMessage_should_report_the_progress_to_statusbar(
            [Values(
                 ProjectWideProcesses.PrigAssemblyAdding,
                 ProjectWideProcesses.PrigIndirectionSettingsEditing,
                 ProjectWideProcesses.PrigAssemblyRemoving,
                 ProjectWideProcesses.TestAdapterEnabling,
                 ProjectWideProcesses.TestAdapterDisabling)]
            ProjectWideProcesses pwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var include = fixture.Create <string>();

            var vm = new PrigViewModel();

            vm.BeginProjectWideProcessProgress(pwProc);


            // Act
            vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, include);


            // Assert
            var msgBox = vm.MessageBoxParameter.Value;

            Assert.AreEqual(OLEMSGBUTTON.OLEMSGBUTTON_OK, msgBox.Button);
            Assert.AreEqual(OLEMSGICON.OLEMSGICON_WARNING, msgBox.Icon);
            Assert.IsNotNullOrEmpty(msgBox.Text);
        }
        public void ConfirmRestartingVisualStudioToTakeEffect_should_show_the_message_to_message_box(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc,
            [Values(VSConstants.MessageBoxResult.IDYES, VSConstants.MessageBoxResult.IDNO)]
            VSConstants.MessageBoxResult response)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);
            vm.MessageBoxParameter.Subscribe(_ => _.Result = response);

            // Act
            var result = vm.ConfirmRestartingVisualStudioToTakeEffect();

            // Assert
            Assert.AreEqual(response == VSConstants.MessageBoxResult.IDYES, result);
            var msgBox = vm.MessageBoxParameter.Value;

            Assert.AreEqual(OLEMSGBUTTON.OLEMSGBUTTON_YESNO, msgBox.Button);
            Assert.AreEqual(OLEMSGICON.OLEMSGICON_WARNING, msgBox.Icon);
            Assert.IsNotNullOrEmpty(msgBox.Text);
        }
Beispiel #7
0
        public void NewDisableTestAdapterCommand_should_bind_Text_property_to_CurrentProject_status()
        {
            // Arrange
            var fixture  = new Fixture().Customize(new AutoMoqCustomization());
            var projName = fixture.Create <string>();
            {
                var m = fixture.Freeze <Mock <Project> >();
                m.Setup(_ => _.Name).Returns(projName);
            }

            var vm          = new PrigViewModel();
            var menuCommand = PrigPackage.NewDisableTestAdapterCommand(vm);

            menuCommand.Text = null;


            // Act
            vm.CurrentProject.Value = null;
            var defaultText = menuCommand.Text;

            vm.CurrentProject.Value = fixture.Freeze <Project>();
            var projectSelectedText = menuCommand.Text;


            // Assert
            Assert.IsNotNull(defaultText);
            Assert.AreNotEqual(defaultText, projectSelectedText);
            Assert.That(projectSelectedText, Is.StringMatching(projName));
        }
        public void GetCurrentProjectOrException_should_throw_InvalidOperationException_if_it_is_not_set()
        {
            // Arrange
            var vm = new PrigViewModel();

            vm.CurrentProject.Value = null;


            // Act, Assert
            Assert.Throws <InvalidOperationException>(() => vm.GetCurrentProjectOrException());
        }
        public Project SetToCurrentProjectIfSupported_(IFixture fixture)
        {
            // Arrange
            var vm = new PrigViewModel();

            // Act
            vm.SetToCurrentProjectIfSupported(fixture.Freeze <Project>());

            // Assert
            fixture.Freeze <Mock <Project> >().VerifyAll();
            return(vm.CurrentProject.Value);
        }
Beispiel #10
0
        public bool SetEditPrigIndirectionSettingsCommandVisibility_(IFixture fixture)
        {
            // Arrange
            var vm = new PrigViewModel();

            // Act
            vm.SetEditPrigIndirectionSettingsCommandVisibility(fixture.Freeze <ProjectItem>());

            // Assert
            fixture.Freeze <Mock <ProjectItem> >().VerifyAll();
            return(vm.IsEditPrigIndirectionSettingsCommandVisible.Value);
        }
Beispiel #11
0
        public bool CanEnableTestAdapter_(bool isTestAdapterEnabled, Project currentProject, IFixture fixture)
        {
            // Arrange
            var vm = new PrigViewModel();

            vm.IsTestAdapterEnabled.Value = isTestAdapterEnabled;
            vm.CurrentProject.Value       = currentProject;

            // Act
            var result = vm.HasEnabledTestAdapter(fixture.Freeze <Project>());

            // Assert
            fixture.Freeze <Mock <Project> >().VerifyAll();
            return(result);
        }
Beispiel #12
0
        public void ReportNuGetPackageCreatingProgress_should_report_the_progress_to_statusbar()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog    = fixture.Create <uint>();
            var pkgName = fixture.Create <string>();

            var vm = new PrigViewModel();

            // Act
            vm.ReportNuGetPackageCreatingProgress(prog, pkgName);


            // Assert
            Assert.AreEqual(prog, vm.Statusbar.ProgressState.Value.Value);
            Assert.That(vm.Statusbar.ProgressState.Value.Label, Is.StringMatching(pkgName));
        }
Beispiel #13
0
        public void ShowVisualStudioHasNotBeenElevatedYetMessage_should_show_the_message_to_message_box()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var vm = new PrigViewModel();

            // Act
            vm.ShowVisualStudioHasNotBeenElevatedYetMessage();


            // Assert
            var msgBox = vm.MessageBoxParameter.Value;

            Assert.AreEqual(OLEMSGBUTTON.OLEMSGBUTTON_OK, msgBox.Button);
            Assert.AreEqual(OLEMSGICON.OLEMSGICON_INFO, msgBox.Icon);
            Assert.IsNotNullOrEmpty(msgBox.Text);
        }
Beispiel #14
0
        public void ReportPackagePreparingProgress_should_report_the_progress_to_statusbar()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog = fixture.Create <uint>();

            var vm = new PrigViewModel();

            // Act
            vm.ReportPackagePreparingProgress(prog);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(prog, progState.Value);
            Assert.IsNotNullOrEmpty(progState.Label);
        }
Beispiel #15
0
        public void EndCompletedMachineWideProcessProgress_should_report_the_progress_to_statusbar(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.EndCompletedMachineWideProcessProgress();


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(0u, progState.Value);
            Assert.IsNullOrEmpty(progState.Label);
            Assert.IsNotNullOrEmpty(vm.Statusbar.Text.Value);
        }
Beispiel #16
0
        public void GetCurrentProjectOrException_should_return_current_project_if_it_is_set()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());
            var curProj = default(Project);
            {
                var m = new Mock <Project>(MockBehavior.Strict);
                curProj = m.Object;
                fixture.Inject(m);
            }

            var vm = new PrigViewModel();

            vm.CurrentProject.Value = curProj;


            // Act
            var result = vm.GetCurrentProjectOrException();


            // Assert
            Assert.AreSame(curProj, result);
        }
Beispiel #17
0
        public void ReportEnvironmentVariableProcessedProgress_should_report_the_progress_to_statusbar(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var prog = fixture.Create <uint>();

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.ReportEnvironmentVariableProcessedProgress(prog);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(prog, progState.Value);
            Assert.IsNotNullOrEmpty(progState.Label);
        }
Beispiel #18
0
        public void EndSkippedMachineWideProcessProgress_should_report_the_progress_to_statusbar(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc,
            [Values(SkippedReasons.AlreadyRegistered, SkippedReasons.CanceledByUser)]
            SkippedReasons reason)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.EndSkippedMachineWideProcessProgress(reason);


            // Assert
            var progState = vm.Statusbar.ProgressState.Value;

            Assert.AreEqual(0u, progState.Value);
            Assert.IsNullOrEmpty(progState.Label);
            Assert.IsNotNullOrEmpty(vm.Statusbar.Text.Value);
        }
Beispiel #19
0
        public void ConfirmRemovingPrigAssembly_should_show_the_message_to_message_box(
            [Values(VSConstants.MessageBoxResult.IDYES, VSConstants.MessageBoxResult.IDNO)]
            VSConstants.MessageBoxResult response)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var deletionalInclude = fixture.Create <string>();

            var vm = new PrigViewModel();

            vm.MessageBoxParameter.Subscribe(_ => _.Result = response);

            // Act
            var result = vm.ConfirmRemovingPrigAssembly(deletionalInclude);

            // Assert
            Assert.AreEqual(response == VSConstants.MessageBoxResult.IDYES, result);
            var msgBox = vm.MessageBoxParameter.Value;

            Assert.AreEqual(OLEMSGBUTTON.OLEMSGBUTTON_YESNO, msgBox.Button);
            Assert.AreEqual(OLEMSGICON.OLEMSGICON_QUERY, msgBox.Icon);
            Assert.IsNotNullOrEmpty(msgBox.Text);
        }
Beispiel #20
0
        public void ShowSkippedMachineWideProcessMessage_should_show_the_message_to_message_box(
            [Values(MachineWideProcesses.Installing, MachineWideProcesses.Uninstalling)]
            MachineWideProcesses mwProc,
            [Values(SkippedReasons.AlreadyRegistered, SkippedReasons.CanceledByUser)]
            SkippedReasons reason)
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var vm = new PrigViewModel();

            vm.BeginMachineWideProcessProgress(mwProc);

            // Act
            vm.ShowSkippedMachineWideProcessMessage(reason);


            // Assert
            var msgBox = vm.MessageBoxParameter.Value;

            Assert.AreEqual(OLEMSGBUTTON.OLEMSGBUTTON_OK, msgBox.Button);
            Assert.AreEqual(OLEMSGICON.OLEMSGICON_INFO, msgBox.Icon);
            Assert.IsNotNullOrEmpty(msgBox.Text);
        }