SetCurrentThreadAsUIThread() public static méthode

public static SetCurrentThreadAsUIThread ( ) : void
Résultat void
Exemple #1
0
        public void CheckStatusAndExecute_SingleIssue_SupportedRepo_StandaloneMode_VisibleAndEnabled(string errorCode)
        {
            // Arrange
            var issueHandle = CreateIssueHandle(111, new Dictionary <string, object>
            {
                { StandardTableKeyNames.BuildTool, "SonarLint" },
                { StandardTableKeyNames.ErrorCode, errorCode }
            });
            var errorList = CreateErrorList(issueHandle);
            var mockUserSettingsProvider = new Mock <IUserSettingsProvider>();
            var solutionTracker          = CreateSolutionTracker(SonarLintMode.Standalone);

            // Act
            var command = CreateDisableRuleMenuCommand(errorList, mockUserSettingsProvider.Object, solutionTracker, new TestLogger());

            // 1. Trigger the query status check
            ThreadHelper.SetCurrentThreadAsUIThread();
            var result = command.OleStatus;

            result.Should().Be(VisibleAndEnabled);
            command.Enabled.Should().BeTrue();
            command.Visible.Should().BeTrue();

            // 2. Invoke the command
            command.Invoke();

            mockUserSettingsProvider.Verify(x => x.DisableRule(errorCode), Times.Once);
        }
Exemple #2
0
        public void Execute_ErrorThrown_FailsButNoExceptionThrow()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            host.TestStateManager.IsBusy = false;
            configProvider.ModeToReturn  = SonarLintMode.Connected;

            bool eventRaised = false;

            host.TestStateManager.BindingStateChanged += (s, e) => eventRaised = true;

            section.DisconnectCommand = new RelayCommand(exec =>
            {
                host.TestStateManager.IsBusy.Should().BeTrue();     // check busy flag is set
                throw new InvalidCastException("my error message");
            });

            // Act
            testSubject.Execute();

            // Assert
            eventRaised.Should().BeFalse();
            outputWindowPane.AssertOutputStrings(
                Strings.Unbind_State_Started,
                Strings.Unbind_DeletingBinding,
                Strings.Unbind_DisconnectingFromSonarQube,
                "my error message",
                Strings.Unbind_State_Failed);
            host.VisualStateManager.IsBusy.Should().BeFalse();
        }
        public void DiscoverProjects_AddsMatchingProjectsToBinding()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            var csProject1 = new ProjectMock("cs1.csproj");
            var csProject2 = new ProjectMock("cs2.csproj");

            csProject1.SetCSProjectKind();
            csProject2.SetCSProjectKind();

            var matchingProjects = new[] { csProject1, csProject2 };

            this.projectSystemHelper.FilteredProjects = matchingProjects;

            var testSubject = this.CreateTestSubject();

            this.host.SupportedPluginLanguages.UnionWith(new[] { Language.CSharp });

            // Act
            var result = testSubject.DiscoverProjects();

            // Assert
            result.Should().BeTrue();
            CollectionAssert.AreEqual(matchingProjects, testSubject.InternalState.BindingProjects.ToArray(), "Unexpected projects selected for binding");
        }
Exemple #4
0
        public void Execute_NoErrors_Succeed()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            host.TestStateManager.IsBusy = false;
            configProvider.ModeToReturn  = SonarLintMode.Connected;

            bool disconnectCalled = false;

            section.DisconnectCommand = new RelayCommand(exec =>
            {
                host.TestStateManager.IsBusy.Should().BeTrue();     // check busy flag is set
                disconnectCalled = true;
            });

            // Act
            testSubject.Execute();

            // Assert
            configProvider.DeleteCallCount.Should().Be(1);
            disconnectCalled.Should().BeTrue();

            outputWindowPane.AssertOutputStrings(
                Strings.Unbind_State_Started,
                Strings.Unbind_DeletingBinding,
                Strings.Unbind_DisconnectingFromSonarQube,
                Strings.Unbind_State_Succeeded);
            host.VisualStateManager.IsBusy.Should().BeFalse();
        }
        public void BindingWorkflow_DiscoverProjects_AddsMatchingProjectsToBinding()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();
            var controller     = new ConfigurableProgressController();
            var progressEvents = new ConfigurableProgressStepExecutionEvents();

            var csProject1 = new ProjectMock("cs1.csproj");
            var csProject2 = new ProjectMock("cs2.csproj");

            csProject1.SetCSProjectKind();
            csProject2.SetCSProjectKind();

            var matchingProjects = new[] { csProject1, csProject2 };

            this.projectSystemHelper.FilteredProjects = matchingProjects;

            var testSubject = this.CreateTestSubject();

            this.host.SupportedPluginLanguages.UnionWith(new[] { Language.CSharp });

            // Act
            testSubject.DiscoverProjects(controller, progressEvents);

            // Assert
            CollectionAssert.AreEqual(matchingProjects, testSubject.BindingProjects.ToArray(), "Unexpected projects selected for binding");
            progressEvents.AssertProgressMessages(Strings.DiscoveringSolutionProjectsProgressMessage);
        }
Exemple #6
0
        public void CheckStatus_SingleIssue_SupportedRepo_ConnectedMode_HasExpectedEnabledStatus(string errorCode, SonarLintMode bindingMode,
                                                                                                 bool expectedEnabled)
        {
            // Arrange
            var issueHandle = CreateIssueHandle(111, new Dictionary <string, object>
            {
                { StandardTableKeyNames.BuildTool, "SonarLint" },
                { StandardTableKeyNames.ErrorCode, errorCode }
            });
            var errorList = CreateErrorList(issueHandle);
            var mockUserSettingsProvider = new Mock <IUserSettingsProvider>();
            var solutionTracker          = CreateSolutionTracker(bindingMode);

            var command = CreateDisableRuleMenuCommand(errorList, mockUserSettingsProvider.Object, solutionTracker, new TestLogger());

            // Act. Trigger the query status check
            ThreadHelper.SetCurrentThreadAsUIThread();
            var result = command.OleStatus;

            var expectedOleStatus = expectedEnabled ? VisibleAndEnabled : VisibleButDisabled;

            result.Should().Be(expectedOleStatus);

            // Should always be visible, but not necessarily enabled
            command.Visible.Should().BeTrue();
            command.Enabled.Should().Be(expectedEnabled);
        }
        public void TestInitialize()
        {
            ThreadHelper.SetCurrentThreadAsUIThread();

            mockTextView = Mock.Of <ITextView>();

            var mockSnapshot = new Mock <ITextSnapshot>();

            mockSnapshot.Setup(x => x.Length).Returns(100);
            mockSnapshotSpan = new SnapshotSpan(mockSnapshot.Object, 1, 10);

            outliningManagerServiceMock = new Mock <IOutliningManagerService>();
            editorOperationsMock        = new Mock <IEditorOperations>();

            var editorOperationsFactoryMock = new Mock <IEditorOperationsFactoryService>();

            editorOperationsFactoryMock
            .Setup(x => x.GetEditorOperations(mockTextView))
            .Returns(editorOperationsMock.Object);

            testSubject = new DocumentNavigator(Mock.Of <IServiceProvider>(),
                                                Mock.Of <IVsEditorAdaptersFactoryService>(),
                                                outliningManagerServiceMock.Object,
                                                editorOperationsFactoryMock.Object);
        }
        public void DiscoverProjects_OutputsIncludedAndExcludedProjects()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            // Act & Common Assert
            DiscoverProjects_GenericPart(4, 2, true);
        }
        public void DiscoverProjects_OutputsExcludedProjects()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            // Act & Common Assert
            DiscoverProjects_GenericPart(2, 0, false);
        }
        public void TestInit()
        {
            ThreadHelper.SetCurrentThreadAsUIThread();
            this.serviceProvider = new ConfigurableServiceProvider();

            this.shell = new ConfigurableVsUIShell();
            this.serviceProvider.RegisterService(typeof(SVsUIShell), this.shell);
        }
        public void DiscoverProjects_NoMatchingProjects_AbortsWorkflow()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();

            // Act & Common Assert
            DiscoverProjects_GenericPart(0, 0, false);
        }
        public void BindingWorkflow_DiscoverProjects_OutputsIncludedAndExcludedProjects()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();
            var controller     = new ConfigurableProgressController();
            var progressEvents = new ConfigurableProgressStepExecutionEvents();

            // Act & Common Assert
            BindingWorkflow_DiscoverProjects_GenericPart(controller, progressEvents, 4, 2);
        }
        public void BindingWorkflow_DiscoverProjects_NoMatchingProjects_AbortsWorkflow()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();
            var controller     = new ConfigurableProgressController();
            var progressEvents = new ConfigurableProgressStepExecutionEvents();

            // Act & Common Assert
            BindingWorkflow_DiscoverProjects_GenericPart(controller, progressEvents, 0, 0);

            // Assert
            controller.NumberOfAbortRequests.Should().Be(1);
        }
Exemple #14
0
        public void BindingWorkflow_DiscoverProjects_Fails_WorkflowAborted()
        {
            // Arrange
            ThreadHelper.SetCurrentThreadAsUIThread();
            var controller     = new ConfigurableProgressController();
            var progressEvents = new ConfigurableProgressStepExecutionEvents();

            mockBindingProcess.Setup(x => x.DiscoverProjects()).Returns(false);

            // Act
            testSubject.DiscoverProjects(controller, progressEvents);

            // Assert
            controller.NumberOfAbortRequests.Should().Be(1);
            progressEvents.AssertProgressMessages(Strings.DiscoveringSolutionProjectsProgressMessage);
        }
        public void CheckStatus_ActiveDocument_IsCFamilyDocument_Enabled()
        {
            // Arrange
            SetActiveDocument(ValidTextDocument, AnalysisLanguage.Javascript, AnalysisLanguage.CFamily);
            ThreadHelper.SetCurrentThreadAsUIThread();

            // Act
            var result = testSubject.OleStatus;

            // Assert
            result.Should().Be((int)(OLECMDF.OLECMDF_SUPPORTED | OLECMDF.OLECMDF_INVISIBLE | OLECMDF.OLECMDF_ENABLED));
            testSubject.Enabled.Should().BeTrue();
            testSubject.Visible.Should().BeFalse();

            VerifyDocumentLocatorCalled();
            VerifyLanguageRecognizerCalled();
            VerifyAnalysisNotRequested();
        }
        public void CheckStatus_NoActiveDocument_NotEnabled()
        {
            // Arrange
            SetActiveDocument(null);
            ThreadHelper.SetCurrentThreadAsUIThread();

            // Act
            var result = testSubject.OleStatus;

            // Assert
            result.Should().Be((int)(OLECMDF.OLECMDF_SUPPORTED | OLECMDF.OLECMDF_INVISIBLE));
            testSubject.Enabled.Should().BeFalse();
            testSubject.Visible.Should().BeFalse();

            VerifyDocumentLocatorCalled();
            VerifyLanguageRecognizerNotCalled();
            VerifyAnalysisNotRequested();
        }
Exemple #17
0
        public void CheckStatus_SingleCFamilyIssue_ConnectedMode_VisibleButNotEnabled(SonarLintMode bindingMode)
        {
            // Arrange
            var issueHandle = CreateIssueHandle(111, new Dictionary <string, object>
            {
                { StandardTableKeyNames.BuildTool, "SonarLint" },
                { StandardTableKeyNames.ErrorCode, "cpp:S123" }
            });
            var errorList = CreateErrorList(issueHandle);
            var mockUserSettingsProvider = new Mock <IUserSettingsProvider>();
            var solutionTracker          = CreateSolutionTracker(bindingMode);

            var command = CreateDisableRuleMenuCommand(errorList, mockUserSettingsProvider.Object, solutionTracker, new TestLogger());

            // Act. Trigger the query status check
            ThreadHelper.SetCurrentThreadAsUIThread();
            var result = command.OleStatus;

            result.Should().Be((int)OLECMDF.OLECMDF_SUPPORTED);

            command.Enabled.Should().BeFalse();
            command.Visible.Should().BeTrue();
        }
Exemple #18
0
 public void TestInitialize()
 {
     ThreadHelper.SetCurrentThreadAsUIThread();
 }