use of com.google.gerrit.testing.InMemoryRepositoryManager.Repo in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method byTriplet.
@Test
public void byTriplet() throws Exception {
TestRepository<Repo> repo = createProject("iabcde");
Change change = insert(repo, newChangeForBranch(repo, "branch"));
String k = change.getKey().get();
assertQuery("iabcde~branch~" + k, change);
assertQuery("change:iabcde~branch~" + k, change);
assertQuery("iabcde~refs/heads/branch~" + k, change);
assertQuery("change:iabcde~refs/heads/branch~" + k, change);
assertQuery("iabcde~branch~" + k.substring(0, 10), change);
assertQuery("change:iabcde~branch~" + k.substring(0, 10), change);
assertQuery("foo~bar");
assertThatQueryException("change:foo~bar").hasMessageThat().isEqualTo("Invalid change format");
assertQuery("otherrepo~branch~" + k);
assertQuery("change:otherrepo~branch~" + k);
assertQuery("iabcde~otherbranch~" + k);
assertQuery("change:iabcde~otherbranch~" + k);
assertQuery("iabcde~branch~I0000000000000000000000000000000000000000");
assertQuery("change:iabcde~branch~I0000000000000000000000000000000000000000");
}
use of com.google.gerrit.testing.InMemoryRepositoryManager.Repo in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method none.
@Test
public void none() throws Exception {
TestRepository<Repo> repo = createProject("repo");
Change change = insert(repo, newChange(repo));
assertQuery(ChangeIndexPredicate.none());
ChangeQueryBuilder queryBuilder = queryBuilderProvider.get();
for (Predicate<ChangeData> matchingOneChange : ImmutableList.of(// One index query, one post-filtering query.
queryBuilder.parse(change.getId().toString()), queryBuilder.parse("ownerin:Administrators"))) {
assertQuery(matchingOneChange, change);
assertQuery(Predicate.or(ChangeIndexPredicate.none(), matchingOneChange), change);
assertQuery(Predicate.and(ChangeIndexPredicate.none(), matchingOneChange));
assertQuery(Predicate.and(Predicate.not(ChangeIndexPredicate.none()), matchingOneChange), change);
}
}
use of com.google.gerrit.testing.InMemoryRepositoryManager.Repo in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method merge.
@Test
public void merge() throws Exception {
assume().that(getSchema().hasField(ChangeField.MERGE)).isTrue();
TestRepository<Repo> repo = createProject("repo");
RevCommit commit1 = repo.parseBody(repo.commit().add("file1", "contents1").create());
RevCommit commit2 = repo.parseBody(repo.commit().add("file1", "contents2").create());
RevCommit commit3 = repo.parseBody(repo.commit().parent(commit2).add("file1", "contents3").create());
Change change1 = insert(repo, newChangeForCommit(repo, commit1));
Change change2 = insert(repo, newChangeForCommit(repo, commit2));
Change change3 = insert(repo, newChangeForCommit(repo, commit3));
RevCommit mergeCommit = repo.branch("master").commit().message("Merge commit").parent(commit1).parent(commit3).insertChangeId().create();
Change mergeChange = insert(repo, newChangeForCommit(repo, mergeCommit));
assertQuery("status:open is:merge", mergeChange);
assertQuery("status:open -is:merge", change3, change2, change1);
assertQuery("status:open", mergeChange, change3, change2, change1);
}
use of com.google.gerrit.testing.InMemoryRepositoryManager.Repo in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method byOnlyExtensions.
@Test
public void byOnlyExtensions() throws Exception {
TestRepository<Repo> repo = createProject("repo");
Change change1 = insert(repo, newChangeWithFiles(repo, "foo.h", "foo.cc", "bar.cc"));
Change change2 = insert(repo, newChangeWithFiles(repo, "bar.H", "bar.CC", "foo.H"));
Change change3 = insert(repo, newChangeWithFiles(repo, "foo.CC", "bar.cc"));
Change change4 = insert(repo, newChangeWithFiles(repo, "dir/baz.h", "dir/baz.cc"));
Change change5 = insert(repo, newChangeWithFiles(repo, "Quux.java"));
Change change6 = insert(repo, newChangeWithFiles(repo, "foo.txt", "foo"));
Change change7 = insert(repo, newChangeWithFiles(repo, "foo"));
// case doesn't matter
assertQuery("onlyextensions:cc,h", change4, change2, change1);
assertQuery("onlyextensions:CC,H", change4, change2, change1);
assertQuery("onlyextensions:cc,H", change4, change2, change1);
assertQuery("onlyextensions:cC,h", change4, change2, change1);
assertQuery("onlyextensions:cc", change3);
assertQuery("onlyextensions:CC", change3);
assertQuery("onlyexts:java", change5);
assertQuery("onlyexts:jAvA", change5);
assertQuery("onlyexts:.jAvA", change5);
// order doesn't matter
assertQuery("onlyextensions:h,cc", change4, change2, change1);
assertQuery("onlyextensions:H,CC", change4, change2, change1);
// specifying extension with '.' is okay
assertQuery("onlyextensions:.cc,.h", change4, change2, change1);
assertQuery("onlyextensions:cc,.h", change4, change2, change1);
assertQuery("onlyextensions:.cc,h", change4, change2, change1);
assertQuery("onlyexts:.java", change5);
// matching changes without extension is possible
assertQuery("onlyexts:txt");
assertQuery("onlyexts:txt,", change6);
assertQuery("onlyexts:,txt", change6);
assertQuery("onlyextensions:\"\"", change7);
assertQuery("onlyexts:\"\"", change7);
assertQuery("onlyextensions:,", change7);
assertQuery("onlyexts:,", change7);
assertFailingQuery("onlyextensions:");
assertFailingQuery("onlyexts:");
// inverse queries
assertQuery("-onlyextensions:cc,h", change7, change6, change5, change3);
}
use of com.google.gerrit.testing.InMemoryRepositoryManager.Repo in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method byBeforeUntil.
@Test
public void byBeforeUntil() throws Exception {
long thirtyHoursInMs = MILLISECONDS.convert(30, HOURS);
resetTimeWithClockStep(thirtyHoursInMs, MILLISECONDS);
TestRepository<Repo> repo = createProject("repo");
long startMs = TestTimeUtil.START.toEpochMilli();
Change change1 = insert(repo, newChange(repo), null, Instant.ofEpochMilli(startMs));
Change change2 = insert(repo, newChange(repo), null, Instant.ofEpochMilli(startMs + thirtyHoursInMs));
TestTimeUtil.setClockStep(0, MILLISECONDS);
for (String predicate : Lists.newArrayList("before:", "until:")) {
assertQuery(predicate + "2009-09-29");
assertQuery(predicate + "2009-09-30");
assertQuery(predicate + "\"2009-09-30 16:59:00 -0400\"");
assertQuery(predicate + "\"2009-09-30 20:59:00 -0000\"");
assertQuery(predicate + "\"2009-09-30 20:59:00\"");
assertQuery(predicate + "\"2009-09-30 17:02:00 -0400\"", change1);
assertQuery(predicate + "\"2009-10-01 21:02:00 -0000\"", change1);
assertQuery(predicate + "\"2009-10-01 21:02:00\"", change1);
assertQuery(predicate + "2009-10-01", change1);
assertQuery(predicate + "2009-10-03", change2, change1);
assertQuery(predicate + "\"2009-09-30 21:00:00 -0000\"", change1);
assertQuery(predicate + "\"2009-10-02 03:00:00 -0000\"", change2, change1);
}
// Same test as above, but using filter code path.
for (String predicate : Lists.newArrayList("before:", "until:")) {
assertQuery(makeIndexedPredicateFilterQuery(predicate + "2009-09-29"));
assertQuery(makeIndexedPredicateFilterQuery(predicate + "2009-09-30"));
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-09-30 16:59:00 -0400\""));
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-09-30 20:59:00 -0000\""));
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-09-30 20:59:00\""));
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-09-30 17:02:00 -0400\""), change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-10-01 21:02:00 -0000\""), change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-10-01 21:02:00\""), change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "2009-10-01"), change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "2009-10-03"), change2, change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-09-30 21:00:00 -0000\""), change1);
assertQuery(makeIndexedPredicateFilterQuery(predicate + "\"2009-10-02 03:00:00 -0000\""), change2, change1);
}
}
Aggregations