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 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(); }
.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 fail_if_partial_match_on_key_without_a_query() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("A query must be provided if a partial match on key is specified."); ComponentQuery.builder().setQualifiers(PROJECT).setPartialMatchOnKey(false).build(); } }
@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"); }