Improve readability of shouldFirePendingOnlyToStoredUri test Make the ReplicationIT.shouldFirePendingOnlyToStoredUri easier to read and simplify the extraction of the replication tasks associated to a change ref, as regex matching isn't required and could be misleading when reading the test. Change-Id: Ib493275872b56bc04cdcfb541b7cfa7ecfb1e058
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java index 8da9da2..553665d 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java
@@ -45,6 +45,7 @@ import java.util.Optional; import java.util.function.Supplier; import java.util.regex.Pattern; +import java.util.stream.Stream; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; @@ -374,33 +375,21 @@ setReplicationDestination(remote2, suffix2, ALL_PROJECTS, Integer.MAX_VALUE); reloadConfig(); - Result pushResult = createChange(); - String sourceRef = pushResult.getPatchSet().getRefName(); + String changeRef = createChange().getPatchSet().getRefName(); tasksStorage.disableDeleteForTesting(false); - listReplicationTasks("refs/changes/\\d*/\\d*/\\d*").stream() - .filter(task -> remote1.equals(task.remote)) - .forEach(u -> tasksStorage.delete(u)); + changeReplicationTasksForRemote(changeRef, remote1).forEach(tasksStorage::delete); tasksStorage.disableDeleteForTesting(true); setReplicationDestination(remote1, suffix1, ALL_PROJECTS); setReplicationDestination(remote2, suffix2, ALL_PROJECTS); reloadConfig(); - assertThat( - listReplicationTasks("refs/changes/\\d*/\\d*/\\d*").stream() - .filter(task -> remote2.equals(task.remote)) - .collect(toList())) - .hasSize(1); + assertThat(changeReplicationTasksForRemote(changeRef, remote2).count()).isEqualTo(1); + assertThat(changeReplicationTasksForRemote(changeRef, remote1).count()).isEqualTo(0); - assertThat( - listReplicationTasks("refs/changes/\\d*/\\d*/\\d*").stream() - .filter(task -> remote1.equals(task.remote)) - .collect(toList())) - .hasSize(0); - - assertThat(isPushCompleted(target2, sourceRef, TEST_TIMEOUT)).isEqualTo(true); - assertThat(isPushCompleted(target1, sourceRef, TEST_TIMEOUT)).isEqualTo(false); + assertThat(isPushCompleted(target2, changeRef, TEST_TIMEOUT)).isEqualTo(true); + assertThat(isPushCompleted(target1, changeRef, TEST_TIMEOUT)).isEqualTo(false); } private Project.NameKey createTestProject(String name) throws Exception { @@ -485,6 +474,13 @@ plugin.getSysInjector().getInstance(AutoReloadConfigDecorator.class).shutdown(); } + private Stream<ReplicateRefUpdate> changeReplicationTasksForRemote( + String changeRef, String remote) { + return tasksStorage.list().stream() + .filter(task -> changeRef.equals(task.ref)) + .filter(task -> remote.equals(task.remote)); + } + private List<ReplicateRefUpdate> listReplicationTasks(String refRegex) { Pattern refmaskPattern = Pattern.compile(refRegex); return tasksStorage.list().stream()