Example #1
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);
        }
Example #2
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);
        }
        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 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_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();
        }
Example #6
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();
        }
Example #7
0
 public void TestInitialize()
 {
     ThreadHelper.SetCurrentThreadAsUIThread();
 }