private List<String> readMultiParamOrDefaultValue(String key, @Nullable WebService.Param definition) { checkArgument(definition != null, "BUG - parameter '%s' is undefined for action '%s'", key, action.key()); List<String> keyValues = readMultiParam(key); if (!keyValues.isEmpty()) { return keyValues; } String deprecatedKey = definition.deprecatedKey(); List<String> deprecatedKeyValues = deprecatedKey == null ? emptyList() : readMultiParam(deprecatedKey); if (!deprecatedKeyValues.isEmpty()) { return deprecatedKeyValues; } String defaultValue = definition.defaultValue(); return defaultValue == null ? emptyList() : singletonList(defaultValue); }
@CheckForNull private String readParam(String key, @Nullable WebService.Param definition) { checkArgument(definition != null, "BUG - parameter '%s' is undefined for action '%s'", key, action.key()); String deprecatedKey = definition.deprecatedKey(); return deprecatedKey != null ? defaultString(readParam(deprecatedKey), readParam(key)) : readParam(key); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition).isNotNull(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("key", "rule"); WebService.Param profileKey = definition.param("key"); assertThat(profileKey.deprecatedKey()).isEqualTo("profile_key"); WebService.Param ruleKey = definition.param("rule"); assertThat(ruleKey.deprecatedKey()).isEqualTo("rule_key"); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.since()).isEqualTo("5.2"); assertThat(definition.isPost()).isTrue(); assertThat(definition.key()).isEqualTo("remove_project"); assertThat(definition.params()).extracting(WebService.Param::key).containsOnly("key", "qualityProfile", "project", "language", "projectUuid", "organization"); WebService.Param languageParam = definition.param("language"); assertThat(languageParam.possibleValues()).containsOnly(LANGUAGE_1, LANGUAGE_2); assertThat(languageParam.exampleValue()).isNull(); assertThat(languageParam.deprecatedSince()).isNullOrEmpty(); WebService.Param organizationParam = definition.param("organization"); assertThat(organizationParam.since()).isEqualTo("6.4"); assertThat(organizationParam.isInternal()).isTrue(); WebService.Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isEqualTo("profileKey"); WebService.Param profileName = definition.param("qualityProfile"); assertThat(profileName.deprecatedSince()).isNullOrEmpty(); WebService.Param project = definition.param("project"); assertThat(project.deprecatedKey()).isEqualTo("projectKey"); WebService.Param projectUuid = definition.param("projectUuid"); assertThat(projectUuid.deprecatedSince()).isEqualTo("6.5"); }
@Test public void definition() { init(); WebService.Action action = ws.getDef(); assertThat(action.since()).isEqualTo("5.2"); assertThat(action.isPost()).isFalse(); assertThat(action.isInternal()).isTrue(); assertThat(action.description()).isNotNull(); assertThat(action.responseExample()).isNotNull(); assertThat(action.changelog()).extracting(Change::getVersion, Change::getDescription).containsExactlyInAnyOrder( tuple("6.4", "The 'visibility' field is added"), tuple("7.3", "The 'almRepoUrl' and 'almId' fields are added"), tuple("7.6", "The use of module keys in parameter 'component' is deprecated")); WebService.Param componentId = action.param(PARAM_COMPONENT); assertThat(componentId.isRequired()).isFalse(); assertThat(componentId.description()).isNotNull(); assertThat(componentId.exampleValue()).isNotNull(); assertThat(componentId.deprecatedKey()).isEqualTo("componentKey"); assertThat(componentId.deprecatedKeySince()).isEqualTo("6.4"); }
@Test public void verify_definition() { WebService.Action action = wsTester.getDef(); assertThat(action.key()).isEqualTo("set_root"); assertThat(action.isInternal()).isTrue(); assertThat(action.isPost()).isTrue(); assertThat(action.since()).isEqualTo("6.2"); assertThat(action.description()).isEqualTo("Make the specified user root.<br/>" + "Requires to be root."); assertThat(action.responseExample()).isNull(); assertThat(action.deprecatedKey()).isNull(); assertThat(action.deprecatedSince()).isNull(); assertThat(action.handler()).isSameAs(underTest); assertThat(action.params()).hasSize(1); WebService.Param param = action.param("login"); assertThat(param.isRequired()).isTrue(); assertThat(param.description()).isEqualTo("A user login"); assertThat(param.defaultValue()).isNull(); assertThat(param.deprecatedSince()).isNull(); assertThat(param.deprecatedKey()).isNull(); assertThat(param.exampleValue()).isEqualTo("admin"); }
@Test public void verify_definition() { WebService.Action action = wsTester.getDef(); assertThat(action.key()).isEqualTo("unset_root"); assertThat(action.isInternal()).isTrue(); assertThat(action.isPost()).isTrue(); assertThat(action.since()).isEqualTo("6.2"); assertThat(action.description()).isEqualTo("Make the specified user not root.<br/>" + "Requires to be root."); assertThat(action.responseExample()).isNull(); assertThat(action.deprecatedKey()).isNull(); assertThat(action.deprecatedSince()).isNull(); assertThat(action.handler()).isSameAs(underTest); assertThat(action.params()).hasSize(1); WebService.Param param = action.param("login"); assertThat(param.isRequired()).isTrue(); assertThat(param.description()).isEqualTo("A user login"); assertThat(param.defaultValue()).isNull(); assertThat(param.deprecatedSince()).isNull(); assertThat(param.deprecatedKey()).isNull(); assertThat(param.exampleValue()).isEqualTo("admin"); }
@Test public void definition() { WebService.Action definition = tester.getDef(); assertThat(definition.since()).isEqualTo("5.2"); assertThat(definition.isPost()).isTrue(); // parameters assertThat(definition.params()).extracting(WebService.Param::key) .containsExactlyInAnyOrder("key", "qualityProfile", "project", "language", "projectUuid", "organization"); WebService.Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isEqualTo("profileKey"); assertThat(profile.deprecatedSince()).isEqualTo("6.6"); WebService.Param languageParam = definition.param("language"); assertThat(languageParam.possibleValues()).containsOnly(LANGUAGE_1, LANGUAGE_2); assertThat(languageParam.exampleValue()).isNull(); WebService.Param project = definition.param("project"); assertThat(project.deprecatedKey()).isEqualTo("projectKey"); WebService.Param projectUuid = definition.param("projectUuid"); assertThat(projectUuid.deprecatedSince()).isEqualTo("6.5"); WebService.Param organizationParam = definition.param("organization"); assertThat(organizationParam.since()).isEqualTo("6.4"); assertThat(organizationParam.isInternal()).isTrue(); }
@Test public void definition_without_exporters() { WebService.Action definition = newWsActionTester().getDef(); assertThat(definition.isPost()).isFalse(); assertThat(definition.isInternal()).isFalse(); assertThat(definition.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("key", "language", "qualityProfile", "organization"); WebService.Param organizationParam = definition.param("organization"); assertThat(organizationParam.since()).isEqualTo("6.4"); assertThat(organizationParam.isInternal()).isTrue(); WebService.Param key = definition.param("key"); assertThat(key.since()).isEqualTo("6.5"); assertThat(key.deprecatedSince()).isEqualTo("6.6"); WebService.Param name = definition.param("qualityProfile"); assertThat(name.deprecatedSince()).isNullOrEmpty(); assertThat(name.deprecatedKey()).isEqualTo("name"); WebService.Param language = definition.param("language"); assertThat(language.deprecatedSince()).isNullOrEmpty(); }
@Test public void test_definition() { WebService.Action definition = tester.getDef(); assertThat(definition.key()).isEqualTo("backup"); assertThat(definition.responseExampleAsString()).isNotEmpty(); assertThat(definition.isInternal()).isFalse(); assertThat(definition.isPost()).isFalse(); // parameters assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("key", "organization", "qualityProfile", "language"); Param key = definition.param("key"); assertThat(key.deprecatedKey()).isEqualTo("profileKey"); assertThat(key.deprecatedSince()).isEqualTo("6.6"); Param language = definition.param("language"); assertThat(language.deprecatedSince()).isNullOrEmpty(); Param profileName = definition.param("qualityProfile"); Param orgParam = definition.param("organization"); assertThat(orgParam.since()).isEqualTo("6.4"); }
private static void writeParam(JsonWriter writer, WebService.Param param) { writer.beginObject(); writer.prop("key", param.key()); writer.prop("description", param.description()); writer.prop("since", param.since()); writer.prop("required", param.isRequired()); writer.prop("internal", param.isInternal()); writer.prop("defaultValue", param.defaultValue()); writer.prop("exampleValue", param.exampleValue()); writer.prop("deprecatedSince", param.deprecatedSince()); writer.prop("deprecatedKey", param.deprecatedKey()); writer.prop("deprecatedKeySince", param.deprecatedKeySince()); writer.prop("maxValuesAllowed", param.maxValuesAllowed()); ofNullable(param.possibleValues()).ifPresent(possibleValues -> writer.name("possibleValues").beginArray().values(possibleValues).endArray()); ofNullable(param.maximumLength()).ifPresent(maximumLength -> writer.prop("maximumLength", maximumLength)); ofNullable(param.minimumLength()).ifPresent(minimumLength -> writer.prop("minimumLength", minimumLength)); ofNullable(param.maximumValue()).ifPresent(maximumValue -> writer.prop("maximumValue", maximumValue)); writer.endObject(); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("projects"); assertThat(definition.responseExampleAsString()).isNotEmpty(); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("key", "p", "ps", "q", "selected"); Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isNullOrEmpty(); Param page = definition.param("p"); assertThat(page.deprecatedKey()).isEqualTo("page"); Param pageSize = definition.param("ps"); assertThat(pageSize.deprecatedKey()).isEqualTo("pageSize"); Param query = definition.param("q"); assertThat(query.deprecatedKey()).isEqualTo("query"); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("language", "organization", "key", "qualityProfile"); Param key = definition.param("key"); assertThat(key.deprecatedKey()).isEqualTo("profileKey"); assertThat(key.deprecatedSince()).isEqualTo("6.6"); Param profileName = definition.param("qualityProfile"); assertThat(profileName.deprecatedSince()).isNullOrEmpty(); Param language = definition.param("language"); assertThat(language.deprecatedSince()).isNullOrEmpty(); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder( "organization", "key", "qualityProfile", "language", "parentKey", "parentQualityProfile"); assertThat(definition.param("organization").since()).isEqualTo("6.4"); Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isEqualTo("profileKey"); assertThat(profile.deprecatedSince()).isEqualTo("6.6"); Param parentProfile = definition.param("parentKey"); assertThat(parentProfile.deprecatedKey()).isNullOrEmpty(); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.responseExampleAsString()).isNotEmpty(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(Param::key) .containsExactlyInAnyOrder("language", "organization", "name", "backup_with_messages", "backup_with_errors", "backup_xoo_lint"); Param name = definition.param("name"); assertThat(name.deprecatedKey()).isEqualTo("profileName"); assertThat(name.deprecatedKeySince()).isEqualTo("6.6"); }
@Test public void define_activate_rule_action() { WebService.Action definition = ws.getDef(); assertThat(definition).isNotNull(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("severity", "key", "reset", "rule", "params"); WebService.Param profileKey = definition.param("key"); assertThat(profileKey.deprecatedKey()).isEqualTo("profile_key"); WebService.Param ruleKey = definition.param("rule"); assertThat(ruleKey.deprecatedKey()).isEqualTo("rule_key"); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("inheritance"); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("key", "language", "qualityProfile", "organization"); Param key = definition.param("key"); assertThat(key.deprecatedKey()).isEqualTo("profileKey"); assertThat(key.deprecatedSince()).isEqualTo("6.6"); Param profileName = definition.param("qualityProfile"); assertThat(profileName.deprecatedSince()).isNullOrEmpty(); Param language = definition.param("language"); assertThat(language.deprecatedSince()).isNullOrEmpty(); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition).isNotNull(); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("key", "qualityProfile", "language", "organization"); assertThat(definition.param("organization").since()).isEqualTo("6.4"); Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isEqualTo("profileKey"); assertThat(definition.param("qualityProfile").deprecatedSince()).isNullOrEmpty(); assertThat(definition.param("language").deprecatedSince()).isNullOrEmpty(); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("rename"); assertThat(definition.isPost()).isTrue(); assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("key", "name"); Param profile = definition.param("key"); assertThat(profile.deprecatedKey()).isNullOrEmpty(); }
@Test public void definition_with_exporters() { WebService.Action definition = newWsActionTester(newExporter("polop"), newExporter("palap")).getDef(); assertThat(definition.isPost()).isFalse(); assertThat(definition.isInternal()).isFalse(); assertThat(definition.params()).extracting("key").containsExactlyInAnyOrder("key", "language", "qualityProfile", "organization", "exporterKey"); WebService.Param exportersParam = definition.param("exporterKey"); assertThat(exportersParam.possibleValues()).containsOnly("polop", "palap"); assertThat(exportersParam.deprecatedKey()).isEqualTo("format"); assertThat(exportersParam.deprecatedKeySince()).isEqualTo("6.3"); assertThat(exportersParam.isInternal()).isFalse(); }