static ComponentQuery buildDbQuery(SearchRequest request) { List<String> qualifiers = request.getQualifiers(); ComponentQuery.Builder query = ComponentQuery.builder() .setQualifiers(qualifiers.toArray(new String[qualifiers.size()])); ofNullable(request.getQuery()).ifPresent(q -> { query.setNameOrKeyQuery(q); query.setPartialMatchOnKey(true); }); ofNullable(request.getVisibility()).ifPresent(v -> query.setPrivate(Visibility.isPrivate(v))); ofNullable(request.getAnalyzedBefore()).ifPresent(d -> query.setAnalyzedBefore(parseDateOrDateTime(d).getTime())); query.setOnProvisionedOnly(request.isOnProvisionedOnly()); ofNullable(request.getProjects()).ifPresent(keys -> query.setComponentKeys(new HashSet<>(keys))); ofNullable(request.getProjectIds()).ifPresent(uuids -> query.setComponentUuids(new HashSet<>(uuids))); return query.build(); }
private static ComponentQuery buildDbQuery(BulkApplyTemplateRequest request) { Collection<String> qualifiers = request.getQualifiers(); ComponentQuery.Builder query = ComponentQuery.builder() .setQualifiers(qualifiers.toArray(new String[qualifiers.size()])); ofNullable(request.getQuery()).ifPresent(q -> { query.setNameOrKeyQuery(q); query.setPartialMatchOnKey(true); }); ofNullable(request.getVisibility()).ifPresent(v -> query.setPrivate(Visibility.isPrivate(v))); ofNullable(request.getAnalyzedBefore()).ifPresent(d -> query.setAnalyzedBefore(parseDateOrDateTime(d).getTime())); query.setOnProvisionedOnly(request.isOnProvisionedOnly()); ofNullable(request.getProjects()).ifPresent(keys -> query.setComponentKeys(new HashSet<>(keys))); return query.build(); }
private static ComponentQuery buildDbQuery(@Nullable String nameOrKeyQuery) { ComponentQuery.Builder dbQuery = ComponentQuery.builder() .setQualifiers(Qualifiers.PROJECT) .setOnProvisionedOnly(true); ofNullable(nameOrKeyQuery).ifPresent(q -> { dbQuery.setPartialMatchOnKey(true); dbQuery.setNameOrKeyQuery(q); }); return dbQuery.build(); }
private static ComponentQuery buildDbQuery(@Nullable String nameOrKeyQuery) { ComponentQuery.Builder dbQuery = ComponentQuery.builder() .setQualifiers(Qualifiers.PROJECT) .setOnProvisionedOnly(true); setNullable(nameOrKeyQuery, q -> { dbQuery.setPartialMatchOnKey(true); dbQuery.setNameOrKeyQuery(q); return dbQuery; }); return dbQuery.build(); }
SnapshotDto analyzedPortfolio = db.components().insertProjectAndSnapshot(ComponentTesting.newView(organization)); Supplier<ComponentQuery.Builder> query = () -> ComponentQuery.builder().setQualifiers(PROJECT).setOnProvisionedOnly(true); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().build(), 0, 10)) .extracting(ComponentDto::uuid)
@Test public void selectByQuery_onProvisionedOnly_filters_projects_with_analysis_on_branch() { Supplier<ComponentQuery.Builder> query = () -> ComponentQuery.builder() .setQualifiers(PROJECT) .setOnProvisionedOnly(true); // the project does not have any analysis OrganizationDto organization = db.organizations().insert(); ComponentDto project = db.components().insertMainBranch(organization); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().build(), 0, 10)) .extracting(ComponentDto::uuid) .containsOnly(project.uuid()); // the project does not have analysis of main branch but only // analysis of non-main branches ComponentDto branchWithoutAnalysis = db.components().insertProjectBranch(project); ComponentDto branchWithAnalysis = db.components().insertProjectBranch(project); db.components().insertSnapshot(branchWithAnalysis); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().build(), 0, 10)) .isEmpty(); }
@Test public void count_provisioned() { OrganizationDto organization = db.organizations().insert(); db.components().insertPrivateProject(organization); db.components().insertProjectAndSnapshot(newPrivateProjectDto(organization)); db.components().insertProjectAndSnapshot(ComponentTesting.newView(organization)); Supplier<ComponentQuery.Builder> query = () -> ComponentQuery.builder().setOnProvisionedOnly(true); assertThat(underTest.countByQuery(dbSession, organization.getUuid(), query.get().setQualifiers(PROJECT).build())).isEqualTo(1); assertThat(underTest.countByQuery(dbSession, organization.getUuid(), query.get().setQualifiers(Qualifiers.VIEW).build())).isEqualTo(0); assertThat(underTest.countByQuery(dbSession, organization.getUuid(), query.get().setQualifiers(PROJECT, Qualifiers.VIEW).build())).isEqualTo(1); }