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(); }
static ComponentQuery buildDbQuery(SearchRequest request) { List<String> qualifiers = request.getQualifiers(); ComponentQuery.Builder query = ComponentQuery.builder() .setQualifiers(qualifiers.toArray(new String[qualifiers.size()])); setNullable(request.getQuery(), q -> { query.setNameOrKeyQuery(q); query.setPartialMatchOnKey(true); return query; }); setNullable(request.getVisibility(), v -> query.setPrivate(Visibility.isPrivate(v))); setNullable(request.getAnalyzedBefore(), d -> query.setAnalyzedBefore(parseDateOrDateTime(d).getTime())); setNullable(request.isOnProvisionedOnly(), query::setOnProvisionedOnly); setNullable(request.getProjects(), keys -> query.setComponentKeys(new HashSet<>(keys))); setNullable(request.getProjectIds(), 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()])); setNullable(request.getQuery(), q -> { query.setNameOrKeyQuery(q); query.setPartialMatchOnKey(true); return query; }); setNullable(request.getVisibility(), v -> query.setPrivate(Visibility.isPrivate(v))); setNullable(request.getAnalyzedBefore(), d -> query.setAnalyzedBefore(parseDateOrDateTime(d).getTime())); setNullable(request.isOnProvisionedOnly(), query::setOnProvisionedOnly); setNullable(request.getProjects(), keys -> query.setComponentKeys(new HashSet<>(keys))); return query.build(); }
private List<ComponentDto> loadComponents(DbSession dbSession, String componentQuery) { ComponentQuery componentDtoQuery = ComponentQuery.builder() .setNameOrKeyQuery(componentQuery) .setQualifiers(POSSIBLE_QUALIFIERS) .build(); return dbClient.componentDao().selectByQuery(dbSession, componentDtoQuery, 0, CeTaskQuery.MAX_COMPONENT_UUIDS); }
private ComponentQuery toDbQuery(SearchProjectPermissionsRequest wsRequest) { return ComponentQuery.builder() .setQualifiers(qualifiers(wsRequest.getQualifier())) .setNameOrKeyQuery(wsRequest.getQuery()) .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(); }
assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().setNameOrKeyQuery(provisionedProject.getDbKey()).build(), 0, 10)) .extracting(ComponentDto::uuid) .containsExactly(provisionedProject.uuid()); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().setNameOrKeyQuery("pROvisiONed.proJEcT").setPartialMatchOnKey(true).build(), 0, 10)) .extracting(ComponentDto::uuid) .containsExactly(provisionedProject.uuid()); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().setNameOrKeyQuery("missing").setPartialMatchOnKey(true).build(), 0, 10)).isEmpty(); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().setNameOrKeyQuery("to be escaped '\"\\%").setPartialMatchOnKey(true).build(), 0, 10)) .isEmpty(); assertThat(underTest.selectByQuery(dbSession, organization.getUuid(), query.get().setNameOrKeyQuery("ned proj").setPartialMatchOnKey(true).build(), 0, 10)) .extracting(ComponentDto::uuid) .containsExactly(provisionedProject.uuid());
@Test public void build_query() { ComponentQuery underTest = ComponentQuery.builder() .setNameOrKeyQuery("key") .setAnyBranchAnalyzedBefore(100L) .setAnyBranchAnalyzedAfter(200L) .setCreatedAfter(new Date(300L)) .setQualifiers(PROJECT) .build(); assertThat(underTest.getNameOrKeyQuery()).isEqualTo("key"); assertThat(underTest.getQualifiers()).containsOnly(PROJECT); assertThat(underTest.getAnyBranchAnalyzedBefore()).isEqualTo(100L); assertThat(underTest.getAnyBranchAnalyzedAfter()).isEqualTo(200L); assertThat(underTest.getCreatedAfter().getTime()).isEqualTo(300L); assertThat(underTest.isOnProvisionedOnly()).isFalse(); assertThat(underTest.isPartialMatchOnKey()).isFalse(); assertThat(underTest.hasEmptySetOfComponents()).isFalse(); }
@Test public void selectByQuery_with_paging_query_and_qualifiers() { OrganizationDto organizationDto = db.organizations().insert(); db.components().insertProjectAndSnapshot(newPrivateProjectDto(organizationDto).setName("aaaa-name")); db.components().insertProjectAndSnapshot(newView(organizationDto)); for (int i = 9; i >= 1; i--) { db.components().insertProjectAndSnapshot(newPrivateProjectDto(organizationDto).setName("project-" + i)); } ComponentQuery query = ComponentQuery.builder().setNameOrKeyQuery("oJect").setQualifiers(PROJECT).build(); List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 1, 3); int count = underTest.countByQuery(dbSession, query); assertThat(result).hasSize(3); assertThat(count).isEqualTo(9); assertThat(result).extracting(ComponentDto::name).containsExactly("project-2", "project-3", "project-4"); assertThat(result).extracting(ComponentDto::getOrganizationUuid).containsOnly(organizationDto.getUuid()); }
private ComponentQuery toDbQuery(SearchProjectPermissionsRequest wsRequest) { return ComponentQuery.builder() .setQualifiers(qualifiers(wsRequest.getQualifier())) .setNameOrKeyQuery(wsRequest.getQuery()) .build(); }
@Test public void test_getNameOrKeyUpperLikeQuery() { ComponentQuery underTest = ComponentQuery.builder() .setNameOrKeyQuery("NAME/key") .setQualifiers(PROJECT) .build(); assertThat(underTest.getNameOrKeyUpperLikeQuery()).isEqualTo("%NAME//KEY%"); }
@Test public void selectByQuery_on_key_partial_match_case_insensitive() { db.components().insertProjectAndSnapshot(newPrivateProjectDto(db.organizations().insert()).setDbKey("project-key")); ComponentQuery query = ComponentQuery.builder() .setNameOrKeyQuery("JECT-K") .setPartialMatchOnKey(true) .setQualifiers(PROJECT).build(); List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 0, 10); assertThat(result).hasSize(1); assertThat(result.get(0).getDbKey()).isEqualTo("project-key"); }
@Test public void selectByQuery_name_with_special_characters() { db.components().insertProjectAndSnapshot(newPrivateProjectDto(db.getDefaultOrganization()).setName("project-\\_%/-name")); ComponentQuery query = ComponentQuery.builder().setNameOrKeyQuery("-\\_%/-").setQualifiers(PROJECT).build(); List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 0, 10); assertThat(result).hasSize(1); assertThat(result.get(0).name()).isEqualTo("project-\\_%/-name"); }
@Test public void selectByQuery_key_with_special_characters() { db.components().insertProjectAndSnapshot(newPrivateProjectDto(db.organizations().insert()).setDbKey("project-_%-key")); db.components().insertProjectAndSnapshot(newPrivateProjectDto(db.organizations().insert()).setDbKey("project-key-that-does-not-match")); ComponentQuery query = ComponentQuery.builder().setNameOrKeyQuery("project-_%-key").setQualifiers(PROJECT).build(); List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 0, 10); assertThat(result).hasSize(1); assertThat(result.get(0).getDbKey()).isEqualTo("project-_%-key"); }
private List<ComponentDto> loadComponents(DbSession dbSession, String componentQuery) { ComponentQuery componentDtoQuery = ComponentQuery.builder() .setNameOrKeyQuery(componentQuery) .setQualifiers(POSSIBLE_QUALIFIERS) .build(); return dbClient.componentDao().selectByQuery(dbSession, componentDtoQuery, 0, CeTaskQuery.MAX_COMPONENT_UUIDS); }