public static SetCurrentThreadAsUIThread ( ) : void | ||
return | void |
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); }
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"); }
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); }
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); }
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(); }
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(); }
public void TestInitialize() { ThreadHelper.SetCurrentThreadAsUIThread(); }