public TestEnvironmentBuilder(SonarQubeQualityProfile profile, Language language,
                                          string projectName = "any", string serverUrl = "http://any")
            {
                this.profile     = profile;
                this.language    = language;
                this.projectName = projectName;
                this.serverUrl   = serverUrl;

                Logger = new TestLogger();
                SonarLintConfigurationResponse = new SonarLintConfiguration();
                PropertiesResponse             = new List <SonarQubeProperty>();
            }
        public async Task GetConfig_ReturnsCorrectAdditionalFile()
        {
            var expectedConfiguration = new SonarLintConfiguration
            {
                Rules = new List <SonarLintRule>
                {
                    new SonarLintRule
                    {
                        Key        = "test",
                        Parameters = new List <SonarLintKeyValuePair> {
                            new SonarLintKeyValuePair {
                                Key = "ruleid", Value = "value"
                            }
                        }
                    }
                }
            };

            var builder = new TestEnvironmentBuilder(validQualityProfile, Language.VBNET)
            {
                ActiveRulesResponse            = validRules,
                InactiveRulesResponse          = emptyRules,
                PropertiesResponse             = anyProperties,
                NuGetBindingOperationResponse  = true,
                RuleSetGeneratorResponse       = validRuleSet,
                SonarLintConfigurationResponse = expectedConfiguration
            };
            var testSubject = builder.CreateTestSubject();

            var expectedAdditionalFilePath = builder.BindingConfiguration.BuildPathUnderConfigDirectory() + "\\VB\\SonarLint.xml";

            var response = await testSubject.GetConfigurationAsync(validQualityProfile, Language.VBNET, builder.BindingConfiguration, CancellationToken.None);

            (response as ICSharpVBBindingConfig).AdditionalFile.Path.Should().Be(expectedAdditionalFilePath);
            (response as ICSharpVBBindingConfig).AdditionalFile.Content.Should().Be(expectedConfiguration);
        }