@Test public void return_many_project_measures() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto project1 = dbTester.components().insertPrivateProject(organization); ComponentDto project2 = dbTester.components().insertPrivateProject(organization); ComponentDto project3 = dbTester.components().insertPrivateProject(organization); dbTester.components().insertSnapshot(project1); dbTester.components().insertSnapshot(project2); dbTester.components().insertSnapshot(project3); assertThat(createResultSetAndReturnDocsById()).hasSize(3); }
@Test public void return_only_processed_analyses() { ComponentDto project = db.components().insertComponent(ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("P1")); userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(newAnalysis(project).setUuid("A1")); db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setStatus(SnapshotDto.STATUS_UNPROCESSED)); List<Analysis> result = call("P1").getAnalysesList(); assertThat(result).hasSize(1); assertThat(result.get(0).getKey()).isEqualTo("A1"); }
@Test public void return_nothing_on_unknown_project() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto project = dbTester.components().insertPrivateProject(organization); dbTester.components().insertSnapshot(project); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById("UNKNOWN"); assertThat(docsById).isEmpty(); }
private SnapshotDto createAnalysisAndLogInAsProjectAdministrator(String version) { ComponentDto project = db.components().insertPrivateProject(); SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion(version)); logInAsProjectAdministrator(project); return analysis; } }
@Test public void return_component_info_when_snapshot() { ComponentDto project = insertOrganizationAndProject(); db.components().insertSnapshot(project, snapshot -> snapshot .setCreatedAt(parseDateTime("2015-04-22T11:44:00+0200").getTime()) .setVersion("3.14")); userSession.addProjectPermission(UserRole.USER, project); init(); executeAndVerify(project.getDbKey(), "return_component_info_when_snapshot.json"); }
@Test public void project_administrator_deletes_analysis() { ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false).setStatus(STATUS_PROCESSED)); db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setLast(true).setStatus(STATUS_PROCESSED)); logInAsProjectAdministrator(project); call("A1"); db.commit(); assertThat(dbClient.snapshotDao().selectByUuids(dbSession, newArrayList("A1", "A2"))).extracting(SnapshotDto::getUuid, SnapshotDto::getStatus).containsExactly( tuple("A1", STATUS_UNPROCESSED), tuple("A2", STATUS_PROCESSED)); }
@Test public void fail_when_empty_metric_keys_parameter() { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(project); expectedException.expect(BadRequestException.class); expectedException.expectMessage("At least one metric key must be provided"); newRequest(project.getKey(), ""); }
@Test public void search_activity_returns_views() { ComponentDto apacheView = db.components().insertView(v -> v.setName("Apache View")); db.components().insertSnapshot(apacheView); logInAsSystemAdministrator(); insertActivity("T2", apacheView, SUCCESS); ActivityResponse activityResponse = call(ws.newRequest().setParam(PARAM_COMPONENT_QUERY, "apac")); assertThat(activityResponse.getTasksList()).extracting("id").containsOnly("T2"); }
@Test public void search_activity_returns_application() { ComponentDto apacheApp = db.components().insertApplication(db.getDefaultOrganization(), a -> a.setName("Apache App")); db.components().insertSnapshot(apacheApp); logInAsSystemAdministrator(); insertActivity("T2", apacheApp, SUCCESS); ActivityResponse activityResponse = call(ws.newRequest().setParam(PARAM_COMPONENT_QUERY, "apac")); assertThat(activityResponse.getTasksList()).extracting(Task::getId).containsOnly("T2"); }
@Test public void fail_when_not_enough_permission() { ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false)); userSession.logIn(); expectedException.expect(ForbiddenException.class); call("A1"); }
@Test public void delete_version_event() { ComponentDto project = db.components().insertPrivateProject(); SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion("5.6.3").setLast(false)); db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(VERSION.getLabel())); logInAsProjectAdministrator(project); call("E1"); SnapshotDto newAnalysis = dbClient.snapshotDao().selectByUuid(dbSession, analysis.getUuid()).get(); assertThat(newAnalysis.getVersion()).isNull(); }
@Test public void fail_when_insufficient_privileges() { userSession.logIn(); ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(project); expectedException.expect(ForbiddenException.class); ws.newRequest() .setParam(PARAM_COMPONENT, project.getKey()) .setParam(PARAM_METRIC_KEYS, "ncloc") .executeProtobuf(ComponentTreeWsResponse.class); }
private DbData insertData() { OrganizationDto organization = db.organizations().insert(); ComponentDto project = db.components().insertPrivateProject(organization); RuleDefinitionDto rule = db.rules().insert(); IssueDto issue = db.issues().insert(rule, project, project); SnapshotDto analysis = db.components().insertSnapshot(project); mockResourceTypeAsValidProject(); return new DbData(project, analysis, issue); }
@Test public void fail_when_metric_keys_parameter_is_empty() { ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(project); expectedException.expect(BadRequestException.class); expectedException.expectMessage("The 'metricKeys' parameter must contain at least one metric key"); ws.newRequest() .setParam(PARAM_COMPONENT, project.getKey()) .setParam(PARAM_METRIC_KEYS, "") .executeProtobuf(ComponentTreeWsResponse.class); }
@Test public void last_analysis_cannot_be_deleted() { ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(true)); logInAsProjectAdministrator(project); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("The last analysis 'A1' cannot be deleted"); call("A1"); }
@Test public void fail_when_not_enough_permission() { userSession.logIn(); ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(project); MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(ForbiddenException.class); newRequest(project.getKey(), metric.getKey()); }
@Test public void fail_when_analysis_is_unprocessed() { ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false).setStatus(STATUS_UNPROCESSED)); logInAsProjectAdministrator(project); expectedException.expect(NotFoundException.class); expectedException.expectMessage("Analysis 'A1' not found"); call("A1"); }
@Test public void fail_if_not_a_project_portfolio_or_application() { ComponentDto project = db.components().insertPrivateProject(); ComponentDto file = db.components().insertComponent(newFileDto(project)); db.components().insertSnapshot(newAnalysis(project)); userSession.registerComponents(project, file); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("A project, portfolio or application is required"); call(file.getDbKey()); }
@Test public void provisioned_projects() { userSession.logIn().addPermission(ADMINISTER, db.getDefaultOrganization()); ComponentDto provisionedProject = db.components().insertPrivateProject(); ComponentDto analyzedProject = db.components().insertPrivateProject(); db.components().insertSnapshot(newAnalysis(analyzedProject)); ws.newRequest().setParam(PARAM_ON_PROVISIONED_ONLY, "true").execute(); verifyDeleted(provisionedProject); verifyListenersOnProjectsDeleted(provisionedProject); }
@Test public void return_file_with_missing_duplication_data() { ComponentDto project = db.components().insertPrivateProject(); ComponentDto file = db.components().insertComponent(newFileDto(project).setDbKey("foo.js")); db.components().insertSnapshot(newAnalysis(project)); userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project); TestResponse result = newBaseRequest().setParam("key", file.getDbKey()).execute(); assertJson(result.getInput()).isSimilarTo("{\n" + " \"duplications\": [],\n" + " \"files\": {}\n" + "}"); }