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()