@Test public void onQualifiers_with_list_parameter_fails_with_IAE_when_qualifier_is_not_supported() { failsWithIAEForUnsupportedQualifiers((builder, qualifier) -> builder.onQualifiers(Collections.singletonList(qualifier))); failsWithIAEForUnsupportedQualifiers((builder, qualifier) -> builder.onQualifiers(Arrays.asList("TRK", qualifier, "BRC"))); }
public static List<PropertyDefinition> properties() { return Collections.singletonList( PropertyDefinition.builder(REPORT_PATHS_PROPERTY_KEY) .name("Issues report paths") .description("List of comma-separated paths (absolute or relative) containing report with issues created by external rule engines.") .category(CoreProperties.CATEGORY_EXTERNAL_ISSUES) .onQualifiers(Qualifiers.PROJECT) .build()); }
@Test public void onQualifiers_with_list_parameter_accepts_supported_qualifiers() { acceptsSupportedQualifiers((builder, qualifier) -> builder.onQualifiers(Collections.singletonList(qualifier))); }
@Test public void onQualifiers_with_varargs_parameter_accepts_supported_qualifiers() { acceptsSupportedQualifiers((builder, qualifier) -> builder.onQualifiers(qualifier)); }
@Test public void return_module_values() { logInAsProjectUser(); ComponentDto module = componentDb.insertComponent(newModuleDto(project)); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").onQualifiers(PROJECT, MODULE).build()); propertyDb.insertProperties( newGlobalPropertyDto().setKey("property").setValue("one"), // The property is overriding global value newComponentPropertyDto(module).setKey("property").setValue("two")); ValuesWsResponse result = executeRequestForComponentProperties(module, "property"); assertThat(result.getSettingsList()).hasSize(1); assertSetting(result.getSettings(0), "property", "two", false); }
@Test public void return_project_values() { logInAsProjectUser(); definitions.addComponent( PropertyDefinition.builder("property").defaultValue("default").onQualifiers(PROJECT).build()); propertyDb.insertProperties( newGlobalPropertyDto().setKey("property").setValue("one"), // The property is overriding global value newComponentPropertyDto(project).setKey("property").setValue("two")); ValuesWsResponse result = executeRequestForProjectProperties("property"); assertThat(result.getSettingsList()).hasSize(1); assertSetting(result.getSettings(0), "property", "two", false); }
@Test public void fail_when_qualifier_not_included() { userSession.logIn().setRoot(); definitions.addComponent(PropertyDefinition.builder("foo") .onQualifiers(VIEW) .build()); i18n.put("qualifier." + PROJECT, "project"); expectedException.expect(BadRequestException.class); expectedException.expectMessage("Setting 'foo' cannot be set on a project"); executeRequestOnComponentSetting("foo", project); }
@Test public void return_is_inherited_to_true_when_property_is_defined_only_at_global_level() { logInAsProjectUser(); definitions.addComponent(PropertyDefinition.builder("property").defaultValue("default").onQualifiers(PROJECT).build()); // The property is not defined on project propertyDb.insertProperties(newGlobalPropertyDto().setKey("property").setValue("one")); ValuesWsResponse result = executeRequestForProjectProperties("property"); assertThat(result.getSettingsList()).hasSize(1); assertSetting(result.getSettings(0), "property", "one", true); }
@Test public void onQualifiers_with_list_parameter_fails_with_NPE_when_qualifier_is_null() { failsWithNPEForNullQualifiers(builder -> builder.onQualifiers(Collections.singletonList(null))); failsWithNPEForNullQualifiers(builder -> builder.onlyOnQualifiers("TRK", null, "BRC")); }
public static ImmutableList<PropertyDefinition> properties() { return ImmutableList.of( PropertyDefinition.builder(REPORT_PATHS_PROPERTY_KEY) .name("Unit tests results report paths") .description("List of comma-separated paths (absolute or relative) containing unit tests results report.") .category(CATEGORY_CODE_COVERAGE) .onQualifiers(Qualifiers.PROJECT) .multiValues(true) .deprecatedKey(OLD_UNIT_TEST_REPORT_PATHS_PROPERTY_KEY) .build()); }
@Test public void return_only_properties_available_for_component_qualifier() { logInAsProjectUser(); propertyDefinitions.addComponents(asList( PropertyDefinition.builder("global").build(), PropertyDefinition.builder("global-and-project").onQualifiers(PROJECT).build(), PropertyDefinition.builder("only-on-project").onlyOnQualifiers(PROJECT).build(), PropertyDefinition.builder("only-on-module").onlyOnQualifiers(MODULE).build())); ListDefinitionsWsResponse result = executeRequest(project.getDbKey()); assertThat(result.getDefinitionsList()).extracting("key").containsOnly("global-and-project", "only-on-project"); }
@Test public void return_only_global_properties_when_no_component_parameter() { logInAsProjectUser(); propertyDefinitions.addComponents(asList( PropertyDefinition.builder("global").build(), PropertyDefinition.builder("global-and-project").onQualifiers(PROJECT).build(), PropertyDefinition.builder("only-on-project").onlyOnQualifiers(PROJECT).build(), PropertyDefinition.builder("only-on-module").onlyOnQualifiers(MODULE).build())); ListDefinitionsWsResponse result = executeRequest(); assertThat(result.getDefinitionsList()).extracting("key").containsOnly("global", "global-and-project"); }
public static ImmutableList<PropertyDefinition> properties() { return ImmutableList.of( PropertyDefinition.builder(REPORT_PATHS_PROPERTY_KEY) .name("Coverage report paths") .description("List of comma-separated paths (absolute or relative) containing coverage report.") .category(CATEGORY_CODE_COVERAGE) .onQualifiers(Qualifiers.PROJECT) .multiValues(true) .deprecatedKey(OLD_COVERAGE_REPORT_PATHS_PROPERTY_KEY) .build()); }
@Test public void return_secured_and_license_settings_when_project_admin() { logInAsProjectAdmin(); propertyDefinitions.addComponents(asList( PropertyDefinition.builder("foo").onQualifiers(PROJECT).build(), PropertyDefinition.builder("secret.secured").onQualifiers(PROJECT).build(), PropertyDefinition.builder("plugin.license.secured").onQualifiers(PROJECT).type(PropertyType.LICENSE).build())); ListDefinitionsWsResponse result = executeRequest(project.getDbKey()); assertThat(result.getDefinitionsList()).extracting(Definition::getKey).containsOnly("foo", "secret.secured", "plugin.license.secured"); }
@Test public void return_project_settings_def_by_project_key() { logInAsProjectUser(); propertyDefinitions.addComponent(PropertyDefinition .builder("foo") .onQualifiers(PROJECT) .build()); ListDefinitionsWsResponse result = executeRequest(project.getDbKey()); assertThat(result.getDefinitionsList()).hasSize(1); }
@Test public void onQualifiers_with_varargs_parameter_fails_with_IAE_when_qualifier_is_not_supported() { failsWithIAEForUnsupportedQualifiers((builder, qualifier) -> builder.onQualifiers(qualifier)); failsWithIAEForUnsupportedQualifiers((builder, qualifier) -> builder.onQualifiers("TRK", qualifier, "BRC")); }
@Test public void should_not_authorize_defining_on_qualifiers_and_only_on_qualifiers() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Cannot define both onQualifiers and onlyOnQualifiers"); PropertyDefinition.builder("foo").name("foo").onQualifiers(Qualifiers.MODULE).onlyOnQualifiers(Qualifiers.PROJECT).build(); }
@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 onQualifiers_with_varargs_parameter_fails_with_NPE_when_qualifier_is_null() { failsWithNPEForNullQualifiers(builder -> builder.onQualifiers((String) null)); failsWithNPEForNullQualifiers(builder -> builder.onQualifiers("TRK", null, "BRC")); }
@Test public void should_not_authorize_defining_on_qualifiers_and_hidden() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Cannot be hidden and defining qualifiers on which to display"); PropertyDefinition.builder("foo").name("foo").onQualifiers(Qualifiers.PROJECT).hidden().build(); }