@Test public void update_tags_for_default_organization() { logInAsQProfileAdministrator(); RuleDefinitionDto rule = db.rules().insert(setSystemTags("stag1", "stag2")); db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null)); Rules.UpdateResponse result = ws.newRequest().setMethod("POST") .setParam(PARAM_KEY, rule.getKey().toString()) .setParam(PARAM_TAGS, "tag2,tag3") .executeProtobuf(Rules.UpdateResponse.class); Rules.Rule updatedRule = result.getRule(); assertThat(updatedRule).isNotNull(); assertThat(updatedRule.getKey()).isEqualTo(rule.getKey().toString()); assertThat(updatedRule.getSysTags().getSysTagsList()).containsExactly(rule.getSystemTags().toArray(new String[0])); assertThat(updatedRule.getTags().getTagsList()).containsExactly("tag2", "tag3"); }
@Test public void update_tags_for_specific_organization() { OrganizationDto organization = db.organizations().insert(); logInAsQProfileAdministrator(organization.getUuid()); RuleDefinitionDto rule = db.rules().insert(setSystemTags("stag1", "stag2")); db.rules().insertOrUpdateMetadata(rule, organization, setTags("tagAlt1", "tagAlt2"), m -> m.setNoteData(null).setNoteUserUuid(null)); Rules.UpdateResponse result = ws.newRequest().setMethod("POST") .setParam(PARAM_KEY, rule.getKey().toString()) .setParam(PARAM_TAGS, "tag2,tag3") .setParam(PARAM_ORGANIZATION, organization.getKey()) .executeProtobuf(Rules.UpdateResponse.class); Rules.Rule updatedRule = result.getRule(); assertThat(updatedRule).isNotNull(); // check response assertThat(updatedRule.getKey()).isEqualTo(rule.getKey().toString()); assertThat(updatedRule.getSysTags().getSysTagsList()).containsExactly(rule.getSystemTags().toArray(new String[0])); assertThat(updatedRule.getTags().getTagsList()).containsExactly("tag2", "tag3"); // check database RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey(), organization) .orElseThrow(() -> new IllegalStateException("Cannot load metadata")); assertThat(metadataOfSpecificOrg.getTags()).containsExactly("tag2", "tag3"); }
@Test public void should_return_specified_fields() { RuleDefinitionDto rule = db.rules().insert(r1 -> r1.setLanguage("java")); indexRules(); checkField(rule, "repo", Rule::getRepo, rule.getRepositoryKey()); checkField(rule, "name", Rule::getName, rule.getName()); checkField(rule, "severity", Rule::getSeverity, rule.getSeverityString()); checkField(rule, "status", r -> r.getStatus().toString(), rule.getStatus().toString()); checkField(rule, "internalKey", Rule::getInternalKey, rule.getConfigKey()); checkField(rule, "isTemplate", Rule::getIsTemplate, rule.isTemplate()); checkField(rule, "sysTags", r -> r.getSysTags().getSysTagsList().stream().collect(Collectors.joining(",")), rule.getSystemTags().stream().collect(Collectors.joining(","))); checkField(rule, "lang", Rule::getLang, rule.getLanguage()); checkField(rule, "langName", Rule::getLangName, languages.get(rule.getLanguage()).getName()); checkField(rule, "gapDescription", Rule::getGapDescription, rule.getGapDescription()); // to be continued... }