SonarLint.VisualStudio.Integration.Vsix.SolutionAnalysisRequester.FlipFullSolutionAnalysisFlag C# (CSharp) Метод

FlipFullSolutionAnalysisFlag() приватный Метод

private FlipFullSolutionAnalysisFlag ( ) : void
Результат void
        internal /* for testing */ void FlipFullSolutionAnalysisFlag()
        {
            if (this.optionService == null ||
                this.fullSolutionAnalysisOption == null ||
                this.optionServiceGetOptionsMethod == null ||
                this.optionServiceSetOptionsMethod == null)
            {
                return;
            }

            var options = this.optionServiceGetOptionsMethod.Invoke(this.optionService, null) as OptionSet;
            if (options == null)
            {
                return;
            }

            var optionValue = options.GetOption(this.fullSolutionAnalysisOption);
            var newOptions = options.WithChangedOption(this.fullSolutionAnalysisOption, !optionValue);
            this.optionServiceSetOptionsMethod.Invoke(this.optionService, new object[] { newOptions });
        }

Usage Example

        public void SolutionAnalysisRequester_FlipFullSolutionAnalysisFlag()
        {
            Option<bool> option = new Option<bool>(SolutionAnalysisRequester.OptionFeatureRuntime,
                SolutionAnalysisRequester.OptionNameFullSolutionAnalysis, true);

            SolutionAnalysisRequester testSubject = new SolutionAnalysisRequester(this.serviceProvider, new AdhocWorkspace(), option);
            bool optionInitialValue = testSubject.GetOptionValue();

            // Act
            testSubject.FlipFullSolutionAnalysisFlag();

            // Verify
            Assert.AreEqual(!optionInitialValue,
                testSubject.GetOptionValue(),
                "Option should be inverted");
        }