@SafeVarargs private final ComponentDto insertView(OrganizationDto organization, String rootViewQualifier, Consumer<ComponentDto>... dtoPopulators) { ComponentDbTester tester = db.components(); if (rootViewQualifier.equals(Qualifiers.VIEW)) { return random.nextBoolean() ? tester.insertPublicPortfolio(organization, dtoPopulators) : tester.insertPrivatePortfolio(organization, dtoPopulators); } return random.nextBoolean() ? tester.insertPublicApplication(organization, dtoPopulators) : tester.insertPrivatePortfolio(organization, dtoPopulators); }
@Test public void update_an_application_to_private() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto application = dbTester.components().insertPublicApplication(organization); GroupDto group = dbTester.users().insertGroup(organization); dbTester.users().insertProjectPermissionOnGroup(group, UserRole.ISSUE_ADMIN, application); UserDto user = dbTester.users().insertUser(); dbTester.users().insertProjectPermissionOnUser(user, UserRole.ADMIN, application); userSessionRule.addProjectPermission(UserRole.ADMIN, application); request.setParam(PARAM_PROJECT, application.getDbKey()) .setParam(PARAM_VISIBILITY, PRIVATE) .execute(); assertThat(dbClient.componentDao().selectByUuid(dbSession, application.uuid()).get().isPrivate()).isTrue(); assertThat(dbClient.groupPermissionDao().selectProjectPermissionsOfGroup(dbSession, organization.getUuid(), group.getId(), application.getId())) .containsOnly(UserRole.USER, UserRole.CODEVIEWER, UserRole.ISSUE_ADMIN); assertThat(dbClient.userPermissionDao().selectProjectPermissionsOfUser(dbSession, user.getId(), application.getId())) .containsOnly(UserRole.USER, UserRole.CODEVIEWER, UserRole.ADMIN); }
@Test public void quality_gate_on_application() { OrganizationDto organization = db.organizations().insert(); ComponentDto application = db.components().insertPublicApplication(organization); userSession.registerComponents(application); MetricDto metric = createQualityGateMetric(); db.measures().insertLiveMeasure(application, metric, m -> m.setData(ERROR.name())); TestResponse response = ws.newRequest() .setParam("project", application.getKey()) .execute(); checkResponse(response, ERROR); }
@Test public void return_extensions_for_application() { OrganizationDto organization = db.organizations().insert(o -> o.setKey("my-org")); db.qualityGates().createDefaultQualityGate(organization); ComponentDto project = db.components().insertPrivateProject(organization); Page page = Page.builder("my_plugin/app_page") .setName("App Page") .setScope(COMPONENT) .setComponentQualifiers(Qualifier.VIEW, Qualifier.APP) .build(); ComponentDto application = componentDbTester.insertPublicApplication(organization); QualityGateDto qualityGateDto = db.qualityGates().insertQualityGate(organization, qg -> qg.setName("Sonar way")); db.qualityGates().associateProjectToQualityGate(project, qualityGateDto); userSession.registerComponents(application); init(page); String result = ws.newRequest() .setParam(PARAM_COMPONENT, application.getDbKey()) .execute().getInput(); assertThat(result).contains("my_plugin/app_page"); }
@Test public void apply_default_template_on_application() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto view = dbTester.components().insertPublicApplication(organization); PermissionTemplateDto projectPermissionTemplate = dbTester.permissionTemplates().insertTemplate(organization); PermissionTemplateDto appPermissionTemplate = dbTester.permissionTemplates().insertTemplate(organization); GroupDto group = dbTester.users().insertGroup(organization); dbTester.permissionTemplates().addGroupToTemplate(appPermissionTemplate, group, ADMINISTER.getKey()); dbTester.permissionTemplates().addGroupToTemplate(appPermissionTemplate, group, PROVISION_PROJECTS.getKey()); dbTester.organizations().setDefaultTemplates(organization, projectPermissionTemplate.getUuid(), appPermissionTemplate.getUuid(), null); underTest.applyDefault(session, organization.getUuid(), view, null); assertThat(selectProjectPermissionsOfGroup(organization, group, view)) .containsOnly(ADMINISTER.getKey(), PROVISION_PROJECTS.getKey()); }
@Test public void scrollAllFilesForFileMove_ignores_non_file_and_non_ut_component_with_source() { OrganizationDto organization = db.organizations().insert(); ComponentDto project = random.nextBoolean() ? db.components().insertPrivateProject(organization) : db.components().insertPublicProject(organization); db.fileSources().insertFileSource(project); ComponentDto module = db.components().insertComponent(ComponentTesting.newModuleDto(project)); db.fileSources().insertFileSource(module); ComponentDto dir = db.components().insertComponent(ComponentTesting.newDirectory(module, "foo")); db.fileSources().insertFileSource(dir); ComponentAndSource file = insertFileAndSource(module, FILE); ComponentAndSource ut = insertFileAndSource(dir, UNIT_TEST_FILE); ComponentDto portfolio = random.nextBoolean() ? db.components().insertPublicPortfolio(organization) : db.components().insertPrivatePortfolio(organization); db.fileSources().insertFileSource(portfolio); ComponentDto subView = db.components().insertSubView(portfolio); db.fileSources().insertFileSource(subView); ComponentDto application = random.nextBoolean() ? db.components().insertPrivateApplication(organization) : db.components().insertPublicApplication(organization); db.fileSources().insertFileSource(application); RecordingResultHandler resultHandler = new RecordingResultHandler(); underTest.scrollAllFilesForFileMove(dbSession, project.uuid(), resultHandler); underTest.scrollAllFilesForFileMove(dbSession, portfolio.uuid(), resultHandler); underTest.scrollAllFilesForFileMove(dbSession, application.uuid(), resultHandler); assertThat(resultHandler.dtos).hasSize(2); verifyFileMoveRowDto(resultHandler, file); verifyFileMoveRowDto(resultHandler, ut); }