public void ExpressionComplexity() { var diagnostic = new ExpressionComplexity { Maximum = 3 }; Verifier.Verify(@"TestCases\ExpressionComplexity.cs", diagnostic); }
public void SetParameterValues_WhenGivenSonarLintFileHasIntParameterType_PopulatesProperties() { // Arrange var options = CreateOptions("ResourceTests\\SonarLint.xml"); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act ParameterLoader.SetParameterValues(analyzer, options); // Assert analyzer.Maximum.Should().Be(1); // Value from the xml file }
public void SetParameterValues_WhenNoSonarLintIsGiven_DoesNotPopulateParameters() { // Arrange var options = CreateOptions("ResourceTests\\MyFile.xml"); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act ParameterLoader.SetParameterValues(analyzer, options); // Assert analyzer.Maximum.Should().Be(3); // Default value }
public void SetParameterValues_WithWrongPropertyType_StringInsteadOfInt_DoesNotPopulateProperties() { // Arrange var options = CreateOptions("ResourceTests\\StringInsteadOfInt\\SonarLint.xml"); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act ParameterLoader.SetParameterValues(analyzer, options); // Assert analyzer.Maximum.Should().Be(3); // Default value }
public void SetParameterValues_WithBadPath_DoesNotPopulateProperties() { // Arrange var options = TestHelper.CreateOptions("ResourceTests\\ThisPathDoesNotExist\\SonarLint.xml"); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act ParameterLoader.SetParameterValues(analyzer, options); // Assert analyzer.Maximum.Should().Be(3); // Default value }
private void AddAnalyzerExpressionCOmplexity(ImmutableArray <DiagnosticAnalyzer> .Builder builder) { var analyzer = new ExpressionComplexity(); if (!AnalyzerIds.Contains(analyzer.SupportedDiagnostics.Single().Id)) { return; } analyzer.Maximum = int.Parse( Parameters[analyzer.SupportedDiagnostics.Single().Id].Single()["max"], NumberStyles.None, CultureInfo.InvariantCulture); builder.Add(analyzer); }
public void SetParameterValues_WhenGivenValidSonarLintFileAndContainsAnalyzerParameters_PopulatesProperties() { // Arrange var additionalText = new Mock <AdditionalText>(); additionalText.Setup(x => x.Path).Returns("ResourceTests\\SonarLint.xml"); var options = new AnalyzerOptions(ImmutableArray.Create(additionalText.Object)); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act ParameterLoader.SetParameterValues(analyzer, options); // Assert analyzer.Maximum.Should().Be(1); // Value from the xml file }
public void SetParameterValues_CalledTwiceAfterChangeInConfigFile_UpdatesProperties() { // Arrange var sonarLintXmlRelativePath = "ResourceTests\\ToChange\\SonarLint.xml"; var options = CreateOptions(sonarLintXmlRelativePath); var analyzer = new ExpressionComplexity(); // Cannot use mock because we use reflection to find properties. // Act with the file on disk ParameterLoader.SetParameterValues(analyzer, options); analyzer.Maximum.Should().Be(1); // from the XML on disk // Update the file on disk var originalContent = File.ReadAllText(sonarLintXmlRelativePath); var modifiedContent = originalContent.Replace("<Value>1</Value>", "<Value>42</Value>"); File.WriteAllText(sonarLintXmlRelativePath, modifiedContent); ParameterLoader.SetParameterValues(analyzer, options); analyzer.Maximum.Should().Be(42); // revert change File.WriteAllText(sonarLintXmlRelativePath, originalContent); }