protected ComponentDto newProject(String key, String name) { return ComponentTesting.newPrivateProjectDto(organization, "UUID_" + key) .setDbKey(key) .setName(name); }
protected ComponentDto indexFile(ComponentDto project, String fileKey, String fileName) { return index( ComponentTesting.newFileDto(project) .setDbKey(fileKey) .setName(fileName)); }
@Test public void search_projects_with_modules() { ComponentDto project1 = ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("org.jenkins-ci.plugins:sonar").setName("Jenkins Sonar Plugin"); ComponentDto project2 = ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("org.codehaus.sonar-plugins:sonar-ant-task").setName("Sonar Ant Task"); insertProjectsAuthorizedForUser(project1, project2); db.components().insertComponents( newModuleDto(project1).setDbKey("org.jenkins-ci.plugins:sonar-common").setName("Common"), newModuleDto(project2).setDbKey("org.codehaus.sonar-plugins:sonar-ant-db").setName("Ant DB")); String result = call(null, null, true); verifyResult(result, "search_projects_with_modules.json"); }
@Test public void fail_when_component_is_not_a_project() { UserDto user = db.users().insertUser(); userSession.logIn(user); when(dispatchers.getGlobalDispatchers()).thenReturn(singletonList(NOTIF_MY_NEW_ISSUES)); when(dispatchers.getProjectDispatchers()).thenReturn(singletonList(NOTIF_MY_NEW_ISSUES)); db.components().insertViewAndSnapshot(newView(db.organizations().insert()).setDbKey("VIEW_1")); expectedException.expect(BadRequestException.class); expectedException.expectMessage("Component 'VIEW_1' must be a project"); call(request.setProject("VIEW_1")); }
@Test public void delete_by_key_query_with_partial_match_case_insensitive() { userSession.logIn().addPermission(ADMINISTER, db.getDefaultOrganization()); ComponentDto matchKeyProject = db.components().insertPrivateProject(p -> p.setDbKey("project-_%-key")); ComponentDto matchUppercaseKeyProject = db.components().insertPrivateProject(p -> p.setDbKey("PROJECT-_%-KEY")); ComponentDto noMatchProject = db.components().insertPrivateProject(p -> p.setDbKey("project-key-without-escaped-characters")); ws.newRequest().setParam(Param.TEXT_QUERY, "JeCt-_%-k").execute(); verifyDeleted(matchKeyProject, matchUppercaseKeyProject); verifyListenersOnProjectsDeleted(matchKeyProject, matchUppercaseKeyProject); }
private ComponentDto createFile(String fileKey, ComponentDto project) { ComponentDto file = ComponentTesting.newFileDto(project, null) .setDbKey(fileKey) .setLanguage(XOO_LANGUAGE); dbClient.componentDao().insert(dbSession, file); dbSession.commit(); return file; }
@Test public void search_with_pagination() { OrganizationDto organizationDto = db.organizations().insert(); List<ComponentDto> componentDtoList = new ArrayList<>(); for (int i = 1; i <= 9; i++) { componentDtoList.add(newPrivateProjectDto(organizationDto, "project-uuid-" + i).setDbKey("project-key-" + i).setName("Project Name " + i)); } insertProjectsAuthorizedForUser(componentDtoList.toArray(new ComponentDto[] {})); SearchWsResponse response = call(new SearchRequest().setOrganization(organizationDto.getKey()).setPage(2).setPageSize(3).setQualifiers(singletonList(PROJECT))); assertThat(response.getComponentsList()).extracting(Component::getKey).containsExactly("project-key-4", "project-key-5", "project-key-6"); }
@Test public void filter_on_languages() { ComponentDto project4 = ComponentTesting.newPrivateProjectDto(ORG).setUuid("Project-4").setName("Project 4").setDbKey("key-4"); index( newDoc(PROJECT1).setLanguages(singletonList("java")), newDoc(PROJECT2).setLanguages(singletonList("xoo")), newDoc(PROJECT3).setLanguages(singletonList("xoo")), newDoc(project4).setLanguages(asList("<null>", "java", "xoo"))); assertResults(new ProjectMeasuresQuery().setLanguages(newHashSet("java", "xoo")), PROJECT1, PROJECT2, PROJECT3, project4); assertResults(new ProjectMeasuresQuery().setLanguages(newHashSet("java")), PROJECT1, project4); assertResults(new ProjectMeasuresQuery().setLanguages(newHashSet("unknown"))); }
@Test public void search_projects_and_views() { userSession.addPermission(ADMINISTER, db.getDefaultOrganization()); db.components().insertComponents( ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey(PROJECT_KEY_1), newView(db.getDefaultOrganization()).setDbKey("view1")); SearchWsResponse response = call(SearchRequest.builder().setQualifiers(asList("TRK", "VW")).build()); assertThat(response.getComponentsList()).extracting(Component::getKey).containsOnly(PROJECT_KEY_1, "view1"); }
@Test public void result_is_paginated() { userSession.addPermission(ADMINISTER, db.getDefaultOrganization()); List<ComponentDto> componentDtoList = new ArrayList<>(); for (int i = 1; i <= 9; i++) { componentDtoList.add(newPrivateProjectDto(db.getDefaultOrganization(), "project-uuid-" + i).setDbKey("project-key-" + i).setName("Project Name " + i)); } db.components().insertComponents(componentDtoList.toArray(new ComponentDto[] {})); SearchWsResponse response = call(SearchRequest.builder().setPage(2).setPageSize(3).build()); assertThat(response.getComponentsList()).extracting(Component::getKey).containsExactly("project-key-4", "project-key-5", "project-key-6"); }
@Test public void return_only_users_favorite() { OrganizationDto organizationDto = db.organizations().insert(); addComponent(ComponentTesting.newPrivateProjectDto(organizationDto).setDbKey("K1")); ComponentDto otherUserFavorite = ComponentTesting.newPrivateProjectDto(organizationDto).setDbKey("K42"); db.components().insertComponent(otherUserFavorite); db.favorites().add(otherUserFavorite, 42); db.commit(); SearchResponse result = call(); assertThat(result.getFavoritesList()).extracting(Favorite::getKey).containsExactly("K1"); }
@Test public void ghost_projects_with_partial_query_on_key() { OrganizationDto organization = db.organizations().insert(); insertGhostProject(organization, dto -> dto.setDbKey("ghost-key-1")); userSessionRule.logIn().addPermission(ADMINISTER, organization); TestResponse result = ws.newRequest() .setParam("organization", organization.getKey()) .setParam(Param.TEXT_QUERY, "GHOST-key") .execute(); assertThat(result.getInput()) .contains("ghost-key-1"); }
@Test public void search_public_projects() { userSession.addPermission(ADMINISTER, db.getDefaultOrganization()); db.components().insertComponents( ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("private-key"), ComponentTesting.newPublicProjectDto(db.getDefaultOrganization()).setDbKey("public-key")); SearchWsResponse response = call(SearchRequest.builder().setVisibility("public").build()); assertThat(response.getComponentsList()).extracting(Component::getKey).containsOnly("public-key"); }
@Test public void json_example() { OrganizationDto organization1 = db.organizations().insertForKey("my-org"); OrganizationDto organization2 = db.organizations().insertForKey("openjdk"); addComponent(ComponentTesting.newPrivateProjectDto(organization1).setDbKey("K1").setName("Samba")); addComponent(ComponentTesting.newPrivateProjectDto(organization1).setDbKey("K2").setName("Apache HBase")); addComponent(ComponentTesting.newPrivateProjectDto(organization2).setDbKey("K3").setName("JDK9")); String result = ws.newRequest().execute().getInput(); assertJson(result).isSimilarTo(ws.getDef().responseExampleAsString()); }
@Test public void set_no_base_project_snapshot_when_no_last_snapshot() { setAnalysisMetadataHolder(); OrganizationDto organizationDto = dbTester.organizations().insert(); ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); insertSnapshot(newAnalysis(project).setLast(false)); reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY)); underTest.execute(new TestComputationStepContext()); assertThat(analysisMetadataHolder.isFirstAnalysis()).isTrue(); }
@Test public void return_bread_crumbs_on_several_levels() { ComponentDto project = insertOrganizationAndProject(); ComponentDto module = componentDbTester.insertComponent(newModuleDto("bcde", project).setDbKey("palap").setName("Palap")); ComponentDto directory = componentDbTester.insertComponent(newDirectory(module, "src/main/xoo")); ComponentDto file = componentDbTester.insertComponent(newFileDto(directory, directory, "cdef").setName("Source.xoo") .setDbKey("palap:src/main/xoo/Source.xoo") .setPath(directory.path())); userSession.addProjectPermission(UserRole.USER, project); init(); executeAndVerify(file.getDbKey(), "return_bread_crumbs_on_several_levels.json"); }
@Before public void setUp() { CeTask defaultOrgCeTask = createCeTask(PROJECT_KEY, db.getDefaultOrganization().getUuid()); underTest = createStep(defaultOrgCeTask); project = db.components().insertPublicProject(db.getDefaultOrganization(), p -> p.setDbKey(PROJECT_KEY)); }
private void setAnalysisMetadataHolder() { analysisMetadataHolder.setRootComponentRef(ROOT_REF) .setAnalysisDate(ANALYSIS_DATE) .setBranch(new DefaultBranchImpl(null)) .setProject(Project.from(newPrivateProjectDto(newOrganizationDto()).setDbKey(REPORT_PROJECT_KEY))); }
@Test public void fail_when_component_key_is_removed() { ComponentDto project = db.components().insertComponent(newPrivateProjectDto(db.getDefaultOrganization())); db.components().insertComponent(newFileDto(project).setDbKey("file-key").setEnabled(false)); expectedException.expect(NotFoundException.class); expectedException.expectMessage("Component key 'file-key' not found"); underTest.getByKey(dbSession, "file-key"); }
@Test public void sort_by_quality_gate_status() { ComponentDto project4 = ComponentTesting.newPrivateProjectDto(ORG).setUuid("Project-4").setName("Project 4").setDbKey("key-4"); index( newDoc(PROJECT1).setQualityGateStatus(OK.name()), newDoc(PROJECT2).setQualityGateStatus(ERROR.name()), newDoc(project4).setQualityGateStatus(OK.name())); assertResults(new ProjectMeasuresQuery().setSort("alert_status").setAsc(true), PROJECT1, project4, PROJECT2); assertResults(new ProjectMeasuresQuery().setSort("alert_status").setAsc(false), PROJECT2, PROJECT1, project4); }