summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java')
-rw-r--r--gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java69
1 files changed, 62 insertions, 7 deletions
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java
index 39c4c0855a..5fa7a30d9d 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesParserTest.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.notedb;
+import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.fail;
import com.google.gerrit.common.TimeUtil;
@@ -327,7 +328,7 @@ public class ChangeNotesParserTest extends AbstractChangeNotesTest {
+ "Branch: refs/heads/master\n"
+ "Change-id: I577fb248e474018276351785930358ec0450e9f7\n"
+ "Subject: Some subject of a change\n");
- assertParseSucceeds(
+ assertParseFails(
"Update change\n"
+ "\n"
+ "Patch-set: 1 (DRAFT)\n"
@@ -437,6 +438,45 @@ public class ChangeNotesParserTest extends AbstractChangeNotesTest {
}
@Test
+ public void parseWorkInProgress() throws Exception {
+ // Change created in WIP remains in WIP.
+ RevCommit commit = writeCommit("Update WIP change\n" + "\n" + "Patch-set: 1\n", true);
+ ChangeNotesState state = newParser(commit).parseAll();
+ assertThat(state.hasReviewStarted()).isFalse();
+
+ // Moving change out of WIP starts review.
+ commit =
+ writeCommit("New ready change\n" + "\n" + "Patch-set: 1\n" + "Work-in-progress: false\n");
+ state = newParser(commit).parseAll();
+ assertThat(state.hasReviewStarted()).isTrue();
+
+ // Change created not in WIP has always been in review started state.
+ state = assertParseSucceeds("New change that doesn't declare WIP\n" + "\n" + "Patch-set: 1\n");
+ assertThat(state.hasReviewStarted()).isTrue();
+ }
+
+ @Test
+ public void pendingReviewers() throws Exception {
+ // Change created in WIP.
+ RevCommit commit = writeCommit("Update WIP change\n" + "\n" + "Patch-set: 1\n", true);
+ ChangeNotesState state = newParser(commit).parseAll();
+ assertThat(state.pendingReviewers().all()).isEmpty();
+ assertThat(state.pendingReviewersByEmail().all()).isEmpty();
+
+ // Reviewers added while in WIP.
+ commit =
+ writeCommit(
+ "Add reviewers\n"
+ + "\n"
+ + "Patch-set: 1\n"
+ + "Reviewer: Change Owner "
+ + "<1@gerrit>\n",
+ true);
+ state = newParser(commit).parseAll();
+ assertThat(state.pendingReviewers().byState(ReviewerStateInternal.REVIEWER)).isNotEmpty();
+ }
+
+ @Test
public void caseInsensitiveFooters() throws Exception {
assertParseSucceeds(
"Update change\n"
@@ -460,11 +500,26 @@ public class ChangeNotesParserTest extends AbstractChangeNotesTest {
return writeCommit(
body,
noteUtil.newIdent(
- changeOwner.getAccount(), TimeUtil.nowTs(), serverIdent, "Anonymous Coward"));
+ changeOwner.getAccount(), TimeUtil.nowTs(), serverIdent, "Anonymous Coward"),
+ false);
}
private RevCommit writeCommit(String body, PersonIdent author) throws Exception {
- Change change = newChange();
+ return writeCommit(body, author, false);
+ }
+
+ private RevCommit writeCommit(String body, boolean initWorkInProgress) throws Exception {
+ ChangeNoteUtil noteUtil = injector.getInstance(ChangeNoteUtil.class);
+ return writeCommit(
+ body,
+ noteUtil.newIdent(
+ changeOwner.getAccount(), TimeUtil.nowTs(), serverIdent, "Anonymous Coward"),
+ initWorkInProgress);
+ }
+
+ private RevCommit writeCommit(String body, PersonIdent author, boolean initWorkInProgress)
+ throws Exception {
+ Change change = newChange(initWorkInProgress);
ChangeNotes notes = newNotes(change).load();
try (ObjectInserter ins = testRepo.getRepository().newObjectInserter()) {
CommitBuilder cb = new CommitBuilder();
@@ -481,12 +536,12 @@ public class ChangeNotesParserTest extends AbstractChangeNotesTest {
}
}
- private void assertParseSucceeds(String body) throws Exception {
- assertParseSucceeds(writeCommit(body));
+ private ChangeNotesState assertParseSucceeds(String body) throws Exception {
+ return assertParseSucceeds(writeCommit(body));
}
- private void assertParseSucceeds(RevCommit commit) throws Exception {
- newParser(commit).parseAll();
+ private ChangeNotesState assertParseSucceeds(RevCommit commit) throws Exception {
+ return newParser(commit).parseAll();
}
private void assertParseFails(String body) throws Exception {