diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
index de7348e..79498df 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
@@ -62,7 +62,7 @@
    * @throws StorageException
    */
   @Override
-  public Object apply(RevisionResource rev, Input input)
+  public Response<?> apply(RevisionResource rev, Input input)
       throws IOException, RestApiException, StorageException, ConfigInvalidException {
     Map<String, Boolean> branchMap = input.branchMap;
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
index 4cf9c22..034bb87 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -56,16 +56,13 @@
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.reviewdb.client.RefNames;
 import com.google.gerrit.server.group.SystemGroupBackend;
-import com.google.gerrit.testing.TestTimeUtil;
 import com.google.inject.Inject;
 import com.googlesource.gerrit.plugins.automerger.helpers.ConfigOption;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
-import java.util.concurrent.TimeUnit;
 import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.lib.Config;
@@ -112,7 +109,7 @@
     assertAutomergerChangeCreatedMessage(dsTwoChangeInfo.id);
 
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
-    assertCodeReview(masterChangeInfo.id, 0, null);
+    assertCodeReviewMissing(masterChangeInfo.id);
     assertThat(masterChangeInfo.branch).isEqualTo("master");
 
     // Ensure that commit subjects are correct
@@ -226,75 +223,6 @@
   }
 
   @Test
-  public void testDiamondMerge_identicalDiamondSides() throws Exception {
-    Project.NameKey manifestNameKey = defaultSetup();
-    // Create initial change
-    PushOneCommit.Result initialResult = createChange("subject", "filename", "echo Hello");
-    // Project name is scoped by test, so we need to get it from our initial change
-    String projectName = initialResult.getChange().project().get();
-    createBranch(BranchNameKey.create(projectName, "left"));
-    createBranch(BranchNameKey.create(projectName, "right"));
-    initialResult.assertOkStatus();
-    merge(initialResult);
-
-    String leftRevision = gApi.projects().name(projectName).branch("left").get().revision;
-    String rightRevision = gApi.projects().name(projectName).branch("right").get().revision;
-    // For this test, right == left
-    assertThat(leftRevision).isEqualTo(rightRevision);
-    createBranch(BranchNameKey.create(projectName, "bottom"));
-    pushDiamondConfig(manifestNameKey.get(), projectName);
-
-    // Freeze time so that the merge commit from left->bottom and right->bottom have same SHA
-    TestTimeUtil.resetWithClockStep(0, TimeUnit.MILLISECONDS);
-    TestTimeUtil.setClock(new Timestamp(TestTimeUtil.START.toEpochMilli()));
-    // After we upload our config, we upload a new patchset to create the downstreams.
-    PushOneCommit.Result result =
-        createChange(testRepo, "master", "subject", "filename2", "echo Hello", "sometopic");
-    TestTimeUtil.useSystemTime();
-    result.assertOkStatus();
-
-    List<ChangeInfo> changesInTopic =
-        gApi.changes()
-            .query("topic: " + gApi.changes().id(result.getChangeId()).topic())
-            .withOption(CURRENT_REVISION)
-            .get();
-    assertThat(changesInTopic).hasSize(4);
-    // +2 and submit
-    merge(result);
-    List<ChangeInfo> sortedChanges = sortedChanges(changesInTopic);
-
-    // Should create two changes on bottom, since left and right are different.
-    ChangeInfo bottomChangeInfo = sortedChanges.get(0);
-    assertThat(bottomChangeInfo.branch).isEqualTo("bottom");
-    assertCodeReview(bottomChangeInfo.id, 2, "autogenerated:Automerger");
-
-    ChangeInfo leftChangeInfo = sortedChanges.get(1);
-    assertThat(leftChangeInfo.branch).isEqualTo("left");
-    assertCodeReview(leftChangeInfo.id, 2, "autogenerated:Automerger");
-
-    ChangeInfo masterChangeInfo = sortedChanges.get(2);
-    assertThat(masterChangeInfo.branch).isEqualTo("master");
-    assertCodeReview(masterChangeInfo.id, 2, null);
-
-    ChangeInfo rightChangeInfo = sortedChanges.get(3);
-    assertThat(rightChangeInfo.branch).isEqualTo("right");
-    assertCodeReview(rightChangeInfo.id, 2, "autogenerated:Automerger");
-
-    // Ensure that commit subjects are correct
-    String masterSubject = masterChangeInfo.subject;
-    String shortMasterSha = masterChangeInfo.currentRevision.substring(0, 10);
-    String shortLeftSha = leftChangeInfo.currentRevision.substring(0, 10);
-    assertThat(masterChangeInfo.subject).doesNotContainMatch("automerger");
-    assertThat(leftChangeInfo.subject)
-        .isEqualTo("[automerger] " + masterSubject + " am: " + shortMasterSha);
-    assertThat(rightChangeInfo.subject)
-        .isEqualTo("[automerger] " + masterSubject + " am: " + shortMasterSha);
-    assertThat(bottomChangeInfo.subject)
-        .isEqualTo(
-            "[automerger] " + masterSubject + " am: " + shortMasterSha + " am: " + shortLeftSha);
-  }
-
-  @Test
   public void testChangeStack() throws Exception {
     Project.NameKey manifestNameKey = defaultSetup();
     // Create initial change
@@ -454,7 +382,7 @@
     assertThat(dsTwoContent.asString()).isEqualTo(content.asString());
 
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
-    assertCodeReview(masterChangeInfo.id, 0, null);
+    assertCodeReviewMissing(masterChangeInfo.id);
     assertThat(masterChangeInfo.branch).isEqualTo("master");
 
     // Ensure that commit subjects are correct
@@ -514,7 +442,7 @@
     assertThat(dsTwoChange.current().files().get("filename").linesDeleted).isEqualTo(1);
 
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
-    assertCodeReview(masterChangeInfo.id, 0, null);
+    assertCodeReviewMissing(masterChangeInfo.id);
     assertThat(masterChangeInfo.branch).isEqualTo("master");
 
     // Ensure that commit subjects are correct
@@ -646,8 +574,8 @@
     assertAutomergerChangeCreatedMessage(dsTwoChangeInfo.id);
 
     ChangeInfo masterChangeInfo = sortedChanges.get(1);
-    // This is 0 because the -2 vote on master failed due to permissions
-    assertCodeReview(masterChangeInfo.id, 0, null);
+    // This is not set because the -2 vote on master failed due to permissions
+    assertCodeReviewMissing(masterChangeInfo.id);
     assertThat(masterChangeInfo.branch).isEqualTo("master");
     assertThat(getLastMessage(masterChangeInfo.id).tag).isEqualTo("autogenerated:MergeConflict");
 
@@ -845,10 +773,10 @@
 
     List<ChangeInfo> sortedChanges = sortedChanges(changesInTopic);
 
-    // Check that downstream is at Code-Review 0
+    // Check that downstream has no Code-Review
     ChangeInfo dsOneChangeInfo = sortedChanges.get(0);
     assertThat(dsOneChangeInfo.branch).isEqualTo("ds_one");
-    assertCodeReview(dsOneChangeInfo.id, 0, null);
+    assertCodeReviewMissing(dsOneChangeInfo.id);
 
     // Try to +2 master and see it succeed to +2 master and ds_one
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
@@ -911,10 +839,10 @@
 
     List<ChangeInfo> sortedChanges = sortedChanges(changesInTopic);
 
-    // Check that downstream is at Code-Review 0
+    // Check that downstream has no Code-Review
     ChangeInfo dsOneChangeInfo = sortedChanges.get(0);
     assertThat(dsOneChangeInfo.branch).isEqualTo("ds_one");
-    assertCodeReview(dsOneChangeInfo.id, 0, null);
+    assertCodeReviewMissing(dsOneChangeInfo.id);
 
     // Try to +1 master and see it succeed to +1 master and ds_one
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
