private static void writeParameters(JsonWriter writer, WebService.Action action, boolean includeInternals) { List<WebService.Param> params = action.params().stream().filter(p -> includeInternals || !p.isInternal()).collect(MoreCollectors.toList()); if (!params.isEmpty()) { // sort parameters by key Ordering<WebService.Param> ordering = Ordering.natural().onResultOf(WebService.Param::key); writer.name("params").beginArray(); for (WebService.Param param : ordering.sortedCopy(params)) { writeParam(writer, param); } writer.endArray(); } }
@Test public void test_definition() { WebService.Action def = ws.getDef(); assertThat(def.isPost()).isFalse(); assertThat(def.since()).isEqualTo("4.4"); assertThat(def.isInternal()).isFalse(); assertThat(def.responseExampleAsString()).isNotEmpty(); assertThat(def.params()).hasSize(24); WebService.Param compareToProfile = def.param("compareToProfile"); assertThat(compareToProfile.since()).isEqualTo("6.5"); assertThat(compareToProfile.isRequired()).isFalse(); assertThat(compareToProfile.isInternal()).isTrue(); assertThat(compareToProfile.description()).isEqualTo("Quality profile key to filter rules that are activated. Meant to compare easily to profile set in 'qprofile'"); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("search_history"); assertThat(definition.responseExampleAsString()).isNotEmpty(); assertThat(definition.isPost()).isFalse(); assertThat(definition.isInternal()).isFalse(); assertThat(definition.since()).isEqualTo("6.3"); assertThat(definition.params()).hasSize(8); Param branch = definition.param("branch"); assertThat(branch.since()).isEqualTo("6.6"); assertThat(branch.isInternal()).isTrue(); assertThat(branch.isRequired()).isFalse(); }
assertThat(organization).isNotNull(); assertThat(organization.isRequired()).isFalse(); assertThat(organization.isInternal()).isTrue(); assertThat(organization.description()).isNotEmpty(); assertThat(organization.since()).isEqualTo("6.4");
@Test public void test_definition() { WebService.Action def = ws.getDef(); assertThat(def.key()).isEqualTo("search"); assertThat(def.isInternal()).isFalse(); assertThat(def.isPost()).isFalse(); assertThat(def.since()).isEqualTo("3.6"); assertThat(def.responseExampleAsString()).isNotEmpty(); assertThat(def.params()).extracting("key").containsExactlyInAnyOrder( "additionalFields", "asc", "assigned", "assignees", "authors", "componentKeys", "componentRootUuids", "componentRoots", "componentUuids", "components", "branch", "pullRequest", "organization", "createdAfter", "createdAt", "createdBefore", "createdInLast", "directories", "facetMode", "facets", "fileUuids", "issues", "languages", "moduleUuids", "onComponentOnly", "p", "projects", "ps", "resolutions", "resolved", "rules", "s", "severities", "sinceLeakPeriod", "statuses", "tags", "types", "owaspTop10", "sansTop25", "cwe"); assertThat(def.param("organization")) .matches(WebService.Param::isInternal) .matches(p -> p.since().equals("6.4")); WebService.Param branch = def.param(PARAM_BRANCH); assertThat(branch.isInternal()).isTrue(); assertThat(branch.isRequired()).isFalse(); assertThat(branch.since()).isEqualTo("6.6"); WebService.Param projectUuids = def.param("projects"); assertThat(projectUuids.description()).isEqualTo("To retrieve issues associated to a specific list of projects (comma-separated list of project keys). " + "This parameter is mostly used by the Issues page, please prefer usage of the componentKeys parameter. If this parameter is set, projectUuids must not be set."); }
@Test public void verify_definition() { WebService.Action action = ws.getDef(); assertThat(action.since()).isEqualTo("6.3"); assertThat(action.isPost()).isFalse(); assertThat(action.isInternal()).isFalse(); assertThat(action.changelog()).extracting(Change::getVersion, Change::getDescription).containsExactlyInAnyOrder( tuple("7.6", "The use of 'BRC' as value for parameter 'qualifiers' is deprecated")); assertThat(action.responseExampleAsString()).isNotEmpty(); assertThat(action.params()).hasSize(6); WebService.Param pageSize = action.param("ps"); assertThat(pageSize.isRequired()).isFalse(); assertThat(pageSize.defaultValue()).isEqualTo("100"); assertThat(pageSize.maximumValue()).isEqualTo(500); assertThat(pageSize.description()).isEqualTo("Page size. Must be greater than 0 and less or equal than 500"); WebService.Param qualifiers = action.param("qualifiers"); assertThat(qualifiers.isRequired()).isTrue(); WebService.Param organization = action.param("organization"); assertThat(organization.isRequired()).isFalse(); assertThat(organization.description()).isEqualTo("Organization key"); assertThat(organization.isInternal()).isTrue(); assertThat(organization.exampleValue()).isEqualTo("my-org"); assertThat(organization.since()).isEqualTo("6.3"); }
@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() { 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() { WebService.Action action = ws.getDef(); assertThat(action.description()).isEqualTo("Get the list of provisioned projects.<br> " + "Web service is deprecated. Use api/projects/search instead, with onProvisionedOnly=true.<br> " + "Require 'Create Projects' permission."); assertThat(action.since()).isEqualTo("5.2"); assertThat(action.changelog()).extracting(Change::getVersion, Change::getDescription).containsExactlyInAnyOrder( tuple("6.4", "The 'uuid' field is deprecated in the response"), tuple("6.4", "Paging response fields is now in a Paging object")); assertThat(action.deprecatedSince()).isEqualTo("6.6"); assertThat(action.params()).hasSize(5); Param organization = action.param(PARAM_ORGANIZATION); assertThat(organization.description()).isEqualTo("The key of the organization"); assertThat(organization.isInternal()).isTrue(); assertThat(organization.isRequired()).isFalse(); assertThat(organization.since()).isEqualTo("6.3"); }
@Test public void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("search"); assertThat(definition.since()).isEqualTo("6.3"); assertThat(definition.responseExampleAsString()).isNotEmpty(); assertThat(definition.param("project").isRequired()).isTrue(); assertThat(definition.param("category")).isNotNull(); assertThat(definition.params()).hasSize(8); Param from = definition.param("from"); assertThat(from.since()).isEqualTo("6.5"); Param to = definition.param("to"); assertThat(to.since()).isEqualTo("6.5"); Param branch = definition.param("branch"); assertThat(branch.since()).isEqualTo("6.6"); assertThat(branch.isInternal()).isTrue(); assertThat(branch.isRequired()).isFalse(); }
@Test public void test_definition() { WebService.Action action = ws.getDef(); assertThat(action.key()).isEqualTo("show"); assertThat(action.responseExampleAsString()).isNotEmpty(); assertThat(action.isPost()).isFalse(); assertThat(action.since()).isEqualTo("6.5"); WebService.Param profile = action.param("key"); assertThat(profile.isRequired()).isTrue(); assertThat(profile.isInternal()).isFalse(); assertThat(profile.description()).isNotEmpty(); WebService.Param compareToSonarWay = action.param("compareToSonarWay"); assertThat(compareToSonarWay.isRequired()).isFalse(); assertThat(compareToSonarWay.isInternal()).isTrue(); assertThat(compareToSonarWay.description()).isNotEmpty(); assertThat(compareToSonarWay.defaultValue()).isEqualTo("false"); assertThat(compareToSonarWay.possibleValues()).contains("true", "false"); }
@Test public void definition() { WebService.Action action = ws.getDef(); assertThat(action.key()).isEqualTo("search_members"); assertThat(action.params()).extracting(Param::key).containsOnly("q", "selected", "p", "ps", "organization"); assertThat(action.description()).isNotEmpty(); assertThat(action.responseExampleAsString()).isNotEmpty(); assertThat(action.since()).isEqualTo("6.4"); assertThat(action.isInternal()).isTrue(); assertThat(action.isPost()).isFalse(); assertThat(action.param("organization").isInternal()).isTrue(); Param selected = action.param("selected"); assertThat(selected.possibleValues()).containsOnly("selected", "deselected"); assertThat(selected.isInternal()).isTrue(); assertThat(selected.defaultValue()).isEqualTo("selected"); assertThat(action.param("ps").maximumValue()).isEqualTo(500); assertThat(action.param("q").minimumLength()).isEqualTo(2); }
@Test public void definition() { WebService.Action action = ws.getDef(); assertThat(action.key()).isEqualTo("ghosts"); assertThat(action.description()).isEqualTo("List ghost projects.<br> " + "With the current architecture, it's no more possible to have invisible ghost projects. Therefore, the web service is deprecated.<br> " + "Requires 'Administer System' permission."); assertThat(action.since()).isEqualTo("5.2"); assertThat(action.isInternal()).isFalse(); assertThat(action.deprecatedSince()).isEqualTo("6.6"); assertThat(action.params()).hasSize(5); Param organization = action.param("organization"); assertThat(organization.description()).isEqualTo("Organization key"); assertThat(organization.since()).isEqualTo("6.3"); assertThat(organization.isRequired()).isFalse(); assertThat(organization.isInternal()).isTrue(); }
@Test public void verify_definition() { WebService.Action action = ws.getDef(); assertThat(action.since()).isEqualTo("5.2"); assertThat(action.isPost()).isFalse(); assertThat(action.isInternal()).isFalse(); assertThat(action.responseExampleAsString()).isNotEmpty(); assertThat(action.params()).extracting(Param::key).containsOnly("p", "q", "ps", "login", "selected", "organization"); WebService.Param qualifiers = action.param("login"); assertThat(qualifiers.isRequired()).isTrue(); WebService.Param organization = action.param("organization"); assertThat(organization.isRequired()).isFalse(); assertThat(organization.description()).isEqualTo("Organization key"); assertThat(organization.isInternal()).isTrue(); assertThat(organization.exampleValue()).isEqualTo("my-org"); assertThat(organization.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_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 definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("set"); assertThat(definition.isPost()).isTrue(); assertThat(definition.isInternal()).isFalse(); assertThat(definition.since()).isEqualTo("6.1"); assertThat(definition.params()).extracting(Param::key) .containsOnly("key", "value", "values", "fieldValues", "component", "branch", "pullRequest"); Param branch = definition.param("branch"); assertThat(branch.isInternal()).isTrue(); assertThat(branch.since()).isEqualTo("6.6"); assertThat(branch.description()).isEqualTo("Branch key. Only available on following settings : sonar.leak.period"); }
@Test public void definition() { WebService.Action def = ws.getDef(); assertThat(def.since()).isEqualTo("5.4"); assertThat(def.params()).extracting(Param::key) .containsExactlyInAnyOrder("componentId", "component", "branch", "pullRequest", "metricKeys", "additionalFields", "developerId", "developerKey"); assertThat(def.param("developerId").deprecatedSince()).isEqualTo("6.4"); assertThat(def.param("developerKey").deprecatedSince()).isEqualTo("6.4"); assertThat(def.param("componentId").deprecatedSince()).isEqualTo("6.6"); WebService.Param branch = def.param("branch"); assertThat(branch.since()).isEqualTo("6.6"); assertThat(branch.isInternal()).isTrue(); assertThat(branch.isRequired()).isFalse(); }
@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(); }
@Test public void test_definition() { WebService.Action definition = ws.getDef(); assertThat(definition.isInternal()).isTrue(); assertThat(definition.key()).isEqualTo("app"); assertThat(definition.params()).hasSize(1); assertThat(definition.param("organization")) .matches(p -> p.isInternal()) .matches(p -> p.since().equals("6.4")) .matches(p -> !p.isRequired()); }