Search in sources :

Example 11 with SearchWsResponse

use of org.sonarqube.ws.QualityProfiles.SearchWsResponse in project sonarlint-core by SonarSource.

the class QualityProfilesDownloader method fetchQualityProfiles.

public QProfiles fetchQualityProfiles() {
    QProfiles.Builder qProfileBuilder = QProfiles.newBuilder();
    String searchUrl = DEFAULT_QP_SEARCH_URL;
    if (wsClient.getOrganizationKey() != null) {
        searchUrl += "?organization=" + StringUtils.urlEncode(wsClient.getOrganizationKey());
    }
    try (InputStream contentStream = wsClient.get(searchUrl).contentStream()) {
        SearchWsResponse qpResponse = QualityProfiles.SearchWsResponse.parseFrom(contentStream);
        for (QualityProfile qp : qpResponse.getProfilesList()) {
            QProfile.Builder qpBuilder = QProfile.newBuilder();
            qpBuilder.setKey(qp.getKey());
            qpBuilder.setName(qp.getName());
            qpBuilder.setLanguage(qp.getLanguage());
            qpBuilder.setLanguageName(qp.getLanguageName());
            qpBuilder.setActiveRuleCount(qp.getActiveRuleCount());
            qpBuilder.setRulesUpdatedAt(qp.getRulesUpdatedAt());
            qpBuilder.setUserUpdatedAt(qp.getUserUpdatedAt());
            qProfileBuilder.putQprofilesByKey(qp.getKey(), qpBuilder.build());
            if (qp.getIsDefault()) {
                qProfileBuilder.putDefaultQProfilesByLanguage(qp.getLanguage(), qp.getKey());
            }
        }
    } catch (IOException e) {
        throw new IllegalStateException("Failed to load default quality profiles", e);
    }
    return qProfileBuilder.build();
}
Also used : InputStream(java.io.InputStream) QualityProfile(org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile) SearchWsResponse(org.sonarqube.ws.QualityProfiles.SearchWsResponse) IOException(java.io.IOException) QProfile(org.sonarsource.sonarlint.core.proto.Sonarlint.QProfiles.QProfile) QProfiles(org.sonarsource.sonarlint.core.proto.Sonarlint.QProfiles)

Example 12 with SearchWsResponse

use of org.sonarqube.ws.QualityProfiles.SearchWsResponse in project sonarqube by SonarSource.

the class SearchActionTest method actions_when_user_can_edit_profile.

@Test
public void actions_when_user_can_edit_profile() {
    QProfileDto profile1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
    QProfileDto profile2 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
    QProfileDto profile3 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
    QProfileDto builtInProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()).setIsBuiltIn(true));
    UserDto user = db.users().insertUser();
    GroupDto group = db.users().insertGroup();
    db.qualityProfiles().addUserPermission(profile1, user);
    db.qualityProfiles().addGroupPermission(profile3, group);
    userSession.logIn(user).setGroups(group);
    SearchWsResponse result = call(ws.newRequest());
    assertThat(result.getProfilesList()).extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()).containsExactlyInAnyOrder(tuple(profile1.getKee(), true, false, false, true, true), tuple(profile2.getKee(), false, false, false, false, false), tuple(profile3.getKee(), true, false, false, true, true), tuple(builtInProfile.getKee(), false, false, false, false, false));
    assertThat(result.getActions().getCreate()).isFalse();
}
Also used : ComponentFinder(org.sonar.server.component.ComponentFinder) SearchWsResponse(org.sonarqube.ws.Qualityprofiles.SearchWsResponse) RuleDefinitionDto(org.sonar.db.rule.RuleDefinitionDto) UserDto(org.sonar.db.user.UserDto) IntStream.range(java.util.stream.IntStream.range) GlobalPermission(org.sonar.db.permission.GlobalPermission) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Languages(org.sonar.api.resources.Languages) QualityProfileDbTester(org.sonar.db.qualityprofile.QualityProfileDbTester) PARAM_PROJECT(org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT) WebService(org.sonar.api.server.ws.WebService) DateUtils(org.sonar.api.utils.DateUtils) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) PARAM_LANGUAGE(org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE) PARAM_DEFAULTS(org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_DEFAULTS) MediaTypes(org.sonarqube.ws.MediaTypes) MoreCollectors(org.sonar.core.util.stream.MoreCollectors) Language(org.sonar.api.resources.Language) PARAM_QUALITY_PROFILE(org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE) PARAM_PROJECT_KEY(org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT_KEY) GroupDto(org.sonar.db.user.GroupDto) UserSessionRule(org.sonar.server.tester.UserSessionRule) DbTester(org.sonar.db.DbTester) QualityProfile(org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile) System2(org.sonar.api.utils.System2) Assertions.tuple(org.assertj.core.api.Assertions.tuple) QualityProfileTesting.newQualityProfileDto(org.sonar.db.qualityprofile.QualityProfileTesting.newQualityProfileDto) LanguageTesting.newLanguage(org.sonar.server.language.LanguageTesting.newLanguage) TestRequest(org.sonar.server.ws.TestRequest) JsonAssert.assertJson(org.sonar.test.JsonAssert.assertJson) Test(org.junit.Test) WsActionTester(org.sonar.server.ws.WsActionTester) DEPRECATED(org.sonar.api.rule.RuleStatus.DEPRECATED) NotFoundException(org.sonar.server.exceptions.NotFoundException) DbClient(org.sonar.db.DbClient) List(java.util.List) Rule(org.junit.Rule) DateUtils.parseDateTime(org.sonar.api.utils.DateUtils.parseDateTime) ProjectDto(org.sonar.db.project.ProjectDto) QProfileDto(org.sonar.db.qualityprofile.QProfileDto) Change(org.sonar.api.server.ws.Change) QProfileDto(org.sonar.db.qualityprofile.QProfileDto) UserDto(org.sonar.db.user.UserDto) GroupDto(org.sonar.db.user.GroupDto) SearchWsResponse(org.sonarqube.ws.Qualityprofiles.SearchWsResponse) Test(org.junit.Test)

Example 13 with SearchWsResponse

use of org.sonarqube.ws.QualityProfiles.SearchWsResponse in project sonarqube by SonarSource.

the class SearchActionTest method filter_on_deprecated_project_key_and_default.

@Test
public void filter_on_deprecated_project_key_and_default() {
    ProjectDto project = db.components().insertPrivateProjectDto();
    QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
    QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
    QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(q -> q.setLanguage(XOO2.getKey()));
    db.qualityProfiles().associateWithProject(project, profileOnXoo1);
    db.qualityProfiles().setAsDefault(defaultProfileOnXoo1, defaultProfileOnXoo2);
    SearchWsResponse result = call(ws.newRequest().setParam(PARAM_PROJECT_KEY, project.getKey()).setParam(PARAM_DEFAULTS, "true"));
    assertThat(result.getProfilesList()).extracting(QualityProfile::getKey).containsExactlyInAnyOrder(defaultProfileOnXoo2.getKee()).doesNotContain(defaultProfileOnXoo1.getKee(), profileOnXoo1.getKee());
}
Also used : ProjectDto(org.sonar.db.project.ProjectDto) QProfileDto(org.sonar.db.qualityprofile.QProfileDto) QualityProfile(org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile) SearchWsResponse(org.sonarqube.ws.Qualityprofiles.SearchWsResponse) Test(org.junit.Test)

Example 14 with SearchWsResponse

use of org.sonarqube.ws.QualityProfiles.SearchWsResponse in project sonarqube by SonarSource.

the class SearchActionTest method empty_when_filtering_on_project_and_no_language_installed.

@Test
public void empty_when_filtering_on_project_and_no_language_installed() {
    WsActionTester ws = new WsActionTester(new SearchAction(userSession, new Languages(), dbClient, new ComponentFinder(dbClient, null)));
    db.qualityProfiles().insert();
    ProjectDto project = db.components().insertPrivateProjectDto();
    QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
    db.qualityProfiles().associateWithProject(project, profileOnXoo1);
    SearchWsResponse result = call(ws.newRequest().setParam(PARAM_PROJECT, project.getKey()).setParam(PARAM_DEFAULTS, "true"));
    assertThat(result.getProfilesList()).isEmpty();
}
Also used : ComponentFinder(org.sonar.server.component.ComponentFinder) ProjectDto(org.sonar.db.project.ProjectDto) QProfileDto(org.sonar.db.qualityprofile.QProfileDto) Languages(org.sonar.api.resources.Languages) SearchWsResponse(org.sonarqube.ws.Qualityprofiles.SearchWsResponse) WsActionTester(org.sonar.server.ws.WsActionTester) Test(org.junit.Test)

Example 15 with SearchWsResponse

use of org.sonarqube.ws.QualityProfiles.SearchWsResponse in project sonarqube by SonarSource.

the class SearchActionTest method no_profile.

@Test
public void no_profile() {
    SearchWsResponse result = call(ws.newRequest());
    assertThat(result.getProfilesList()).isEmpty();
}
Also used : SearchWsResponse(org.sonarqube.ws.Qualityprofiles.SearchWsResponse) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)21 SearchWsResponse (org.sonarqube.ws.Qualityprofiles.SearchWsResponse)21 QProfileDto (org.sonar.db.qualityprofile.QProfileDto)16 QualityProfile (org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile)14 ProjectDto (org.sonar.db.project.ProjectDto)9 Languages (org.sonar.api.resources.Languages)6 ComponentFinder (org.sonar.server.component.ComponentFinder)6 WsActionTester (org.sonar.server.ws.WsActionTester)6 SearchWsResponse (org.sonarqube.ws.QualityProfiles.SearchWsResponse)6 List (java.util.List)5 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)5 Assertions.tuple (org.assertj.core.api.Assertions.tuple)5 Rule (org.junit.Rule)5 QualityProfileTesting.newQualityProfileDto (org.sonar.db.qualityprofile.QualityProfileTesting.newQualityProfileDto)5 IOException (java.io.IOException)4 InputStream (java.io.InputStream)4 IntStream.range (java.util.stream.IntStream.range)4 Assertions.assertThatThrownBy (org.assertj.core.api.Assertions.assertThatThrownBy)4 Language (org.sonar.api.resources.Language)4 DEPRECATED (org.sonar.api.rule.RuleStatus.DEPRECATED)4