private List<PropertyDto> loadDefaultSettings(Optional<String> key) { return propertyDefinitions.getAll().stream() .filter(definition -> !key.isPresent() || key.get().equals(definition.key())) .filter(defaultProperty -> !isEmpty(defaultProperty.defaultValue())) .map(definition -> new PropertyDto().setKey(definition.key()).setValue(definition.defaultValue())) .collect(Collectors.toList()); }
@Test public void return_values_of_component_even_if_no_property_definition() { logInAsProjectUser(); propertyDb.insertProperties( newComponentPropertyDto(project).setKey("property").setValue("foo")); ValuesWsResponse response = executeRequestForComponentProperties(project, "property"); assertThat(response.getSettingsCount()).isEqualTo(1); assertSetting(response.getSettings(0), "property", "foo", false); }
@Test public void ignore_global_setting_when_removing_project_setting() { logInAsProjectAdmin(); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("value")); executeRequestOnProjectSetting("foo"); assertGlobalPropertyExists("foo"); assertProjectPropertyDoesNotExist("foo"); }
@Test public void delete_global_settings() { definitions.addComponent(PropertyDefinition.builder("foo").build()); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("value")); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); propertyDb.insertProperties(newGlobalPropertyDto().setKey("bar").setValue("two")); underTest.deleteGlobalSettings(dbSession, "foo", "bar"); assertGlobalPropertyDoesNotExist("foo"); assertGlobalPropertyDoesNotExist("bar"); assertProjectPropertyExists("foo"); }
@Test public void does_not_fail_when_deleting_unknown_setting() { propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); underTest.deleteGlobalSettings(dbSession, "unknown"); assertGlobalPropertyExists("foo"); }
@Test public void return_values_even_if_no_property_definition() { logIn(); propertyDb.insertProperties(newGlobalPropertyDto().setKey("globalPropertyWithoutDefinition").setValue("value")); executeAndVerify(null, null, "return_values_even_if_no_property_definition.json"); }
@Test public void return_secured_and_license_settings_even_if_not_defined_when_project_admin() { logInAsProjectAdmin(); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("not-defined.secured").setValue("123")); ValuesWsResponse result = executeRequestForProjectProperties("not-defined.secured"); assertThat(result.getSettingsList()).extracting(Settings.Setting::getKey).containsOnly("not-defined.secured"); }
@Test public void return_project_values() { logInAsProjectUser(); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").build()); propertyDb.insertProperties( newGlobalPropertyDto().setKey("property").setValue("one"), // The property is overriding global value newComponentPropertyDto(project).setKey("property").setValue("two")); executeAndVerify(project.getDbKey(), null, "return_project_values.json"); }
@Test public void legacy_branch() { ComponentDto project = db.components().insertMainBranch(); db.properties().insertProperties(newComponentPropertyDto(project).setKey("sonar.leak.period").setValue("1")); Branch branch = createBranch("legacy", true); when(branch.isLegacyFeature()).thenReturn(true); Configuration config = underTest.newProjectConfiguration(project.getKey(), createBranch(branch.getName(), true)); assertThat(config.get("sonar.leak.period")).hasValue("1"); }
@Test public void remove_global_setting_even_if_not_defined() { logInAsSystemAdministrator(); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); executeRequestOnGlobalSetting("foo"); assertGlobalPropertyDoesNotExist("foo"); }
@Test public void branch_settings_contains_project_settings() { ComponentDto project = db.components().insertMainBranch(); db.properties().insertProperties(newComponentPropertyDto(project).setKey("key").setValue("value")); ComponentDto branch = db.components().insertProjectBranch(project); db.properties().insertProperties(newComponentPropertyDto(branch).setKey("sonar.leak.period").setValue("1")); Configuration config = underTest.newProjectConfiguration(project.getKey(), createBranch(branch.getBranch(), false)); assertThat(config.get("key")).hasValue("value"); assertThat(config.get("sonar.leak.period")).hasValue("1"); }
@Test public void return_inherited_values_on_global_setting() { logIn(); definitions.addComponents(asList( PropertyDefinition.builder("defaultProperty").defaultValue("default").build(), PropertyDefinition.builder("globalProperty").build())); propertyDb.insertProperties( newGlobalPropertyDto().setKey("globalProperty").setValue("global")); executeAndVerify(null, null, "return_inherited_values_on_global_setting.json"); }
@Test public void return_simple_value() { logIn(); definitions.addComponent(PropertyDefinition.builder("foo").build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); executeAndVerify(null, null, "return_simple_value.json"); }
@Test public void return_nothing_when_unknown_key() { logIn(); definitions.addComponent(PropertyDefinition.builder("foo").defaultValue("default").build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("bar").setValue("")); executeAndVerify(null, "unknown", "empty.json"); }
@Test public void does_not_return_value_of_deprecated_key() { logIn(); definitions.addComponent(PropertyDefinition.builder("foo").deprecatedKey("deprecated").build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); executeAndVerify(null, "deprecated", "empty.json"); }
@Test public void return_global_values() { logIn(); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").build()); propertyDb.insertProperties( // The property is overriding default value newGlobalPropertyDto().setKey("property").setValue("one")); executeAndVerify(null, null, "return_global_values.json"); }
@Test public void return_global_values_when_project_does_not_exist() { logIn(); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").build()); propertyDb.insertProperties( newGlobalPropertyDto().setKey("property").setValue("one")); executeAndVerify("unknown", null, "return_global_values.json"); }
@Test public void remove_global_setting() { logInAsSystemAdministrator(); definitions.addComponent(PropertyDefinition.builder("foo").build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); executeRequestOnGlobalSetting("foo"); assertGlobalPropertyDoesNotExist("foo"); }
@Test public void remove_component_setting() { logInAsProjectAdmin(); definitions.addComponent(PropertyDefinition.builder("foo").onQualifiers(PROJECT).build()); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("value")); executeRequestOnProjectSetting("foo"); assertProjectPropertyDoesNotExist("foo"); }
@Test public void remove_hidden_setting() { logInAsSystemAdministrator(); definitions.addComponent(PropertyDefinition.builder("foo").hidden().build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); executeRequestOnGlobalSetting("foo"); assertGlobalPropertyDoesNotExist("foo"); }