@Test public void return_subset_of_fields() { RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java")); indexRules(); Rules.SearchResponse response = ws.newRequest() .setParam(WebService.Param.FIELDS, "createdAt,langName") .executeProtobuf(Rules.SearchResponse.class); Rules.Rule result = response.getRules(0); // mandatory fields assertThat(result.getKey()).isEqualTo(rule.getKey().toString()); assertThat(result.getType().getNumber()).isEqualTo(rule.getType()); // selected fields assertThat(result.getCreatedAt()).isNotEmpty(); assertThat(result.getLangName()).isNotEmpty(); // not returned fields assertThat(result.hasEffortToFixDescription()).isFalse(); assertThat(result.hasHtmlDesc()).isFalse(); assertThat(result.hasIsTemplate()).isFalse(); assertThat(result.hasLang()).isFalse(); assertThat(result.hasName()).isFalse(); assertThat(result.hasSeverity()).isFalse(); assertThat(result.hasRepo()).isFalse(); }
@Test public void return_lang_key_field_when_language_name_is_not_available() { OrganizationDto organization = db.organizations().insert(); String unknownLanguage = "unknown_" + randomAlphanumeric(5); RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage(unknownLanguage)); indexRules(); SearchResponse result = ws.newRequest() .setParam("f", "langName") .setParam("organization", organization.getKey()) .executeProtobuf(SearchResponse.class); assertThat(result.getTotal()).isEqualTo(1); assertThat(result.getRulesCount()).isEqualTo(1); Rule searchedRule = result.getRules(0); assertThat(searchedRule).isNotNull(); assertThat(searchedRule.getLangName()).isEqualTo(unknownLanguage); }
@Test public void return_all_rule_fields_by_default() { RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java")); indexRules(); Rules.SearchResponse response = ws.newRequest().executeProtobuf(Rules.SearchResponse.class); Rules.Rule result = response.getRules(0); assertThat(result.getCreatedAt()).isNotEmpty(); assertThat(result.getEffortToFixDescription()).isNotEmpty(); assertThat(result.getHtmlDesc()).isNotEmpty(); assertThat(result.hasIsTemplate()).isTrue(); assertThat(result.getLang()).isEqualTo(rule.getLanguage()); assertThat(result.getLangName()).isEqualTo(languages.get(rule.getLanguage()).getName()); assertThat(result.getName()).isNotEmpty(); assertThat(result.getRepo()).isNotEmpty(); assertThat(result.getSeverity()).isNotEmpty(); assertThat(result.getType().name()).isEqualTo(RuleType.valueOf(rule.getType()).name()); }
public Rule getRule(String key) { Rules.Rule rule = sonarClient.rules().show(null, key).getRule(); return new Rule(rule.getKey(), rule.getName(), rule.getSeverity(), rule.getLang(), rule.getLangName(), rule.getHtmlDesc()); }