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..d949975 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -112,7 +112,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
@@ -454,7 +454,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 +514,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 +646,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 +845,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 +911,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);
