public void Get_ConnectedMode(SonarLintMode mode) { // Arrange var builder = new TestEnvironmentBuilder(mode) { ConnectedModeSettings = new UserSettings { Rules = new Dictionary <string, RuleConfig> { { "cpp:rule1", new RuleConfig { Level = RuleLevel.Off, Severity = null } }, { "cpp:rule2", new RuleConfig { Level = RuleLevel.On, Severity = IssueSeverity.Blocker } }, { "cpp:rule3", new RuleConfig { Level = RuleLevel.On, Severity = IssueSeverity.Critical } }, { "XXX:rule4", new RuleConfig { Level = RuleLevel.On, Severity = IssueSeverity.Info } } } }, StandaloneModeSettings = new UserSettings { Rules = new Dictionary <string, RuleConfig> { { "cpp:rule1", new RuleConfig { Level = RuleLevel.On } }, { "cpp:rule2", new RuleConfig { Level = RuleLevel.Off } }, { "cpp:rule4", new RuleConfig { Level = RuleLevel.On } }, { "XXX:rule4", new RuleConfig { Level = RuleLevel.On } } } }, SonarWayConfig = new DummyCFamilyRulesConfig("cpp") .AddRule("rule1", IssueSeverity.Info, isActive: false) .AddRule("rule2", IssueSeverity.Major, isActive: false) .AddRule("rule3", IssueSeverity.Minor, isActive: true) .AddRule("rule4", IssueSeverity.Blocker, isActive: false) }; var testSubject = builder.CreateTestSubject(); // Act var result = testSubject.GetRulesConfiguration("cpp"); // Assert result.ActivePartialRuleKeys.Should().BeEquivalentTo("rule2", "rule3"); result.AllPartialRuleKeys.Should().BeEquivalentTo("rule1", "rule2", "rule3", "rule4"); result.RulesMetadata["rule1"].DefaultSeverity.Should().Be(IssueSeverity.Info); // not set in ConnectedModeSettings so should use default result.RulesMetadata["rule2"].DefaultSeverity.Should().Be(IssueSeverity.Blocker); // ConnectedModeSetting should override the default result.RulesMetadata["rule3"].DefaultSeverity.Should().Be(IssueSeverity.Critical); // ConnectedModeSetting should override the default result.RulesMetadata["rule4"].DefaultSeverity.Should().Be(IssueSeverity.Blocker); // ConnectedModeSetting should override the default builder.AssertStandaloneSettingsNotAccessed(); builder.Logger.AssertOutputStringExists(Resources.Strings.CFamily_UsingConnectedModeSettings); }