Add happy path test for BatchRefUpdateValidator
We were missing a happy path test - this updates multiple refs.
Change-Id: Id3d1ffb2ef6c234fe2b079e81f4bea4e16219dc0
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
index ff18ed7..2c4a1ea 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
@@ -91,6 +91,37 @@
}
@Test
+ public void shouldUpdateSharedRefDbForAllRefUpdates() throws IOException {
+ String REF_NAME_A = "refs/changes/01/1/1";
+ String REF_NAME_B = "refs/changes/02/1/1";
+ BatchRefUpdate batchRefUpdate =
+ newBatchUpdate(
+ List.of(
+ new ReceiveCommand(A, B, REF_NAME_A, UPDATE),
+ new ReceiveCommand(A, B, REF_NAME_B, UPDATE)));
+ BatchRefUpdateValidator batchRefUpdateValidator =
+ getRefValidatorForEnforcement(A_TEST_PROJECT_NAME, tmpRefEnforcement);
+
+ doReturn(SharedRefEnforcement.EnforcePolicy.REQUIRED)
+ .when(batchRefUpdateValidator.refEnforcement)
+ .getPolicy(A_TEST_PROJECT_NAME, REF_NAME_A);
+
+ doReturn(true).when(sharedRefDatabase).isUpToDate(any(), any());
+
+ doReturn(true).when(sharedRefDatabase).compareAndPut(any(), any(), any());
+
+ batchRefUpdateValidator.executeBatchUpdateWithValidation(
+ batchRefUpdate, () -> execute(batchRefUpdate), rollbackFunction);
+
+ verify(rollbackFunction, never()).invoke(any());
+
+ List<ReceiveCommand> commands = batchRefUpdate.getCommands();
+ assertThat(commands.size()).isEqualTo(2);
+ commands.forEach(
+ (command) -> assertThat(command.getResult()).isEqualTo(ReceiveCommand.Result.OK));
+ }
+
+ @Test
public void immutableChangeShouldNotBeWrittenIntoSharedRefDb() throws Exception {
String AN_IMMUTABLE_REF = "refs/changes/01/1/1";