Allow submission with a FORCED status
Change-Id: I021661b59e36d1b76b0cf258e535dc5ef6aba564
diff --git a/java/com/google/gerrit/common/data/SubmitRecord.java b/java/com/google/gerrit/common/data/SubmitRecord.java
index ae8b2bb..8638d6d 100644
--- a/java/com/google/gerrit/common/data/SubmitRecord.java
+++ b/java/com/google/gerrit/common/data/SubmitRecord.java
@@ -32,7 +32,7 @@
}
// The change can be submitted, unless at least one plugin prevents it.
- return in.stream().noneMatch(r -> r.status != Status.OK);
+ return in.stream().map(SubmitRecord::status).allMatch(SubmitRecord.Status::allowsSubmission);
}
public enum Status {
@@ -56,7 +56,11 @@
*
* <p>Additional detail may be available in {@link SubmitRecord#errorMessage}.
*/
- RULE_ERROR
+ RULE_ERROR;
+
+ private boolean allowsSubmission() {
+ return this == OK || this == FORCED;
+ }
}
public Status status;
@@ -178,4 +182,8 @@
public int hashCode() {
return Objects.hash(status, labels, errorMessage, requirements);
}
+
+ private Status status() {
+ return status;
+ }
}
diff --git a/javatests/com/google/gerrit/common/data/SubmitRecordTest.java b/javatests/com/google/gerrit/common/data/SubmitRecordTest.java
index 6a90f45..54fab66 100644
--- a/javatests/com/google/gerrit/common/data/SubmitRecordTest.java
+++ b/javatests/com/google/gerrit/common/data/SubmitRecordTest.java
@@ -21,14 +21,17 @@
import org.junit.Test;
public class SubmitRecordTest {
-
private static SubmitRecord OK_RECORD;
+ private static SubmitRecord FORCED_RECORD;
private static SubmitRecord NOT_READY_RECORD;
static {
OK_RECORD = new SubmitRecord();
OK_RECORD.status = SubmitRecord.Status.OK;
+ FORCED_RECORD = new SubmitRecord();
+ FORCED_RECORD.status = SubmitRecord.Status.FORCED;
+
NOT_READY_RECORD = new SubmitRecord();
NOT_READY_RECORD.status = SubmitRecord.Status.NOT_READY;
}
@@ -49,6 +52,14 @@
}
@Test
+ public void okWhenForced() {
+ Collection<SubmitRecord> submitRecords = new ArrayList<>();
+ submitRecords.add(FORCED_RECORD);
+
+ assertThat(SubmitRecord.allRecordsOK(submitRecords)).isTrue();
+ }
+
+ @Test
public void emptyResultIfInvalid() {
Collection<SubmitRecord> submitRecords = new ArrayList<>();
submitRecords.add(NOT_READY_RECORD);