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()); }
public void associateProject(DbSession dbSession, ComponentDto project, QualityGateDto qualityGate) { dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto() .setKey(SONAR_QUALITYGATE_PROPERTY) .setResourceId(project.getId()) .setValue(String.valueOf(qualityGate.getId()))); }
private void insertPropertyFor(ComponentDto... components) { Stream.of(components).forEach(componentDto -> db.properties().insertProperty(new PropertyDto() .setKey(randomAlphabetic(3)) .setValue(randomAlphabetic(3)) .setResourceId(componentDto.getId()))); }
@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_project_setting_when_removing_global_setting() { logInAsSystemAdministrator(); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("value")); executeRequestOnGlobalSetting("foo"); assertGlobalPropertyDoesNotExist("foo"); assertProjectPropertyExists("foo"); }
@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"); }
public void associateProjectToQualityGate(ComponentDto component, QualityGateDto qualityGate) { dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto() .setKey("sonar.qualitygate") .setResourceId(component.getId()) .setValue(String.valueOf(qualityGate.getId()))); db.commit(); }
@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_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"); }
private void insertProperty(String key, String value) { PropertyDto dto = new PropertyDto().setKey(key).setValue(value); db.getDbClient().propertiesDao().saveProperty(db.getSession(), dto); db.commit(); }
@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 return_module_values() { logInAsProjectUser(); ComponentDto module = componentDb.insertComponent(newModuleDto(project)); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").build()); propertyDb.insertProperties( newGlobalPropertyDto().setKey("property").setValue("one"), // The property is overriding global value newComponentPropertyDto(module).setKey("property").setValue("two")); executeAndVerify(module.getDbKey(), "property", "return_module_values.json"); }
@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_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 branch_settings() { ComponentDto project = db.components().insertMainBranch(); 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("sonar.leak.period")).hasValue("1"); }
@Test public void does_not_fail_when_user_has_not_project_browse_permission() { userSession.logIn("project-admin").addProjectPermission(CODEVIEWER, project); definitions.addComponent(PropertyDefinition.builder("foo").build()); propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("one")); executeAndVerify(project.getDbKey(), null, "does_not_fail_when_user_has_not_project_browse_permission.json"); }
@Test public void fail_when_deprecated_key_and_new_key_are_used() { logIn(); definitions.addComponent(PropertyDefinition .builder("foo") .deprecatedKey("deprecated") .build()); propertyDb.insertProperties(newGlobalPropertyDto().setKey("foo").setValue("one")); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("'foo' and 'deprecated' cannot be used at the same time as they refer to the same setting"); executeRequestForGlobalProperties("foo", "deprecated"); }