private final String nameOrKeyQuery;
private final boolean partialMatchOnKey;
private final String[] qualifiers;
- private final String language;
private final Boolean isPrivate;
private final Set<Long> componentIds;
private final Set<String> componentUuids;
this.nameOrKeyQuery = builder.nameOrKeyQuery;
this.partialMatchOnKey = builder.partialMatchOnKey == null ? false : builder.partialMatchOnKey;
this.qualifiers = builder.qualifiers;
- this.language = builder.language;
this.componentIds = builder.componentIds;
this.componentUuids = builder.componentUuids;
this.componentKeys = builder.componentKeys;
return partialMatchOnKey;
}
- @CheckForNull
- public String getLanguage() {
- return language;
- }
-
@CheckForNull
public Set<Long> getComponentIds() {
return componentIds;
private String nameOrKeyQuery;
private Boolean partialMatchOnKey;
private String[] qualifiers;
- private String language;
private Boolean isPrivate;
private Set<Long> componentIds;
private Set<String> componentUuids;
return this;
}
- public Builder setLanguage(@Nullable String language) {
- this.language = language;
- return this;
- }
-
public Builder setComponentIds(@Nullable Set<Long> componentIds) {
this.componentIds = componentIds;
return this;
assertThat(result.get(0).getDbKey()).isEqualTo("project-key");
}
- @Test
- public void selectByQuery_filter_on_language() {
- db.components().insertComponent(newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("java-project-key").setLanguage("java"));
- db.components().insertComponent(newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("cpp-project-key").setLanguage("cpp"));
-
- ComponentQuery query = ComponentQuery.builder().setLanguage("java").setQualifiers(PROJECT).build();
- List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 0, 10);
-
- assertThat(result).hasSize(1);
- assertThat(result.get(0).getDbKey()).isEqualTo("java-project-key");
- }
-
@Test
public void selectByQuery_filter_last_analysis_date() {
long aLongTimeAgo = 1_000_000_000L;
db.components().insertSnapshot(recentProject, s -> s.setCreatedAt(aLongTimeAgo).setLast(false));
// before date
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(recentTime), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(recentTime)))
.containsExactlyInAnyOrder(oldProject.uuid());
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(aLongTimeAgo), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(aLongTimeAgo)))
.isEmpty();
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(recentTime + 1_000L), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedBefore(recentTime + 1_000L)))
.containsExactlyInAnyOrder(oldProject.uuid(), recentProject.uuid());
// after date
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime - 1_000L), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime - 1_000L)))
.containsExactlyInAnyOrder(recentProject.uuid());
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime + 1_000L), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime + 1_000L)))
.isEmpty();
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(aLongTimeAgo), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(aLongTimeAgo)))
.containsExactlyInAnyOrder(oldProject.uuid(), recentProject.uuid());
}
db.components().insertSnapshot(recentProjectBranch, s -> s.setCreatedAt(aLongTimeAgo).setLast(false));
// after date
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime - 1_000L), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime - 1_000L)))
.containsExactlyInAnyOrder(recentProject.uuid());
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime + 1_000L), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(recentTime + 1_000L)))
.isEmpty();
- assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(aLongTimeAgo), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setAnalyzedAfter(aLongTimeAgo)))
.containsExactlyInAnyOrder(oldProject.uuid(), recentProject.uuid());
}
ComponentDto project1 = db.components().insertPrivateProject(p -> p.setCreatedAt(parseDate("2018-02-01")));
ComponentDto project2 = db.components().insertPrivateProject(p -> p.setCreatedAt(parseDate("2018-06-01")));
- assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2017-12-01")), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2017-12-01"))))
.containsExactlyInAnyOrder(project1.uuid(), project2.uuid());
- assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2018-02-20")), 0, 10))
+ assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2018-02-20"))))
.containsExactlyInAnyOrder(project2.uuid());
- assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2019-01-01")), 0, 10))
+
+ assertThat(selectProjectUuidsByQuery(q -> q.setCreatedAfter(parseDate("2019-01-01"))))
.isEmpty();
}
- private List<String> selectProjectUuidsByQuery(Consumer<ComponentQuery.Builder> query, int offset, int limit) {
+ private List<String> selectProjectUuidsByQuery(Consumer<ComponentQuery.Builder> query) {
ComponentQuery.Builder builder = ComponentQuery.builder().setQualifiers(PROJECT);
query.accept(builder);
- return underTest.selectByQuery(dbSession, builder.build(), offset, limit)
+ return underTest.selectByQuery(dbSession, builder.build(), 0, 5)
.stream()
.map(ComponentDto::uuid)
.collect(Collectors.toList());
*/
package org.sonar.db.component;
+import java.util.Date;
import java.util.function.Supplier;
import org.junit.Rule;
import org.junit.Test;
public void build_query() {
ComponentQuery underTest = ComponentQuery.builder()
.setNameOrKeyQuery("key")
- .setLanguage("java")
- .setAnalyzedBefore(1_000_000_000L)
+ .setAnalyzedBefore(100L)
+ .setAnalyzedAfter(200L)
+ .setCreatedAfter(new Date(300L))
.setQualifiers(PROJECT)
.build();
assertThat(underTest.getNameOrKeyQuery()).isEqualTo("key");
- assertThat(underTest.getLanguage()).isEqualTo("java");
assertThat(underTest.getQualifiers()).containsOnly(PROJECT);
- assertThat(underTest.getAnalyzedBefore()).isEqualTo(1_000_000_000L);
+ assertThat(underTest.getAnalyzedBefore()).isEqualTo(100L);
+ assertThat(underTest.getAnalyzedAfter()).isEqualTo(200L);
+ assertThat(underTest.getCreatedAfter().getTime()).isEqualTo(300L);
assertThat(underTest.isOnProvisionedOnly()).isFalse();
assertThat(underTest.isPartialMatchOnKey()).isFalse();
assertThat(underTest.hasEmptySetOfComponents()).isFalse();
.build();
assertThat(underTest.getNameOrKeyQuery()).isNull();
- assertThat(underTest.getLanguage()).isNull();
assertThat(underTest.getQualifiers()).containsOnly(PROJECT);
}
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("At least one qualifier must be provided");
- ComponentQuery.builder().setLanguage("java").build();
+ ComponentQuery.builder().build();
}
@Test