Fix tests in the plugin to avoid implicit merges.

Some tests resets repo to an incorrect commit and instead of creating
sibling change(s) they created child changes in a differnt branch.

Tests were verified with the following command:
bazel test //plugins/automerger/...

Change-Id: Iefe9222a65c64f2c8dd066ae6ff516f014cd1767
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 cb36aaa..52cf29e 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -144,6 +144,7 @@
   @Test
   public void testDiamondMerge() throws Exception {
     Project.NameKey manifestNameKey = defaultSetup();
+    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     // 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
@@ -152,13 +153,18 @@
     createBranch(BranchNameKey.create(projectName, "right"));
     initialResult.assertOkStatus();
     merge(initialResult);
+    ObjectId masterWithMergedChange = repo().exactRef("HEAD").getLeaf().getObjectId();
     // Reset to create a sibling
-    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     testRepo.reset(initial);
     // Make left != right
     PushOneCommit.Result left =
         createChange(
-            testRepo, "left", "subject", "filename", "echo \"Hello asdfsd World\"", "randtopic");
+            testRepo,
+            "left",
+            "subject",
+            "filename-left",
+            "echo \"Hello asdfsd World\"",
+            "randtopic");
     left.assertOkStatus();
     merge(left);
 
@@ -169,6 +175,7 @@
     createBranch(BranchNameKey.create(projectName, "bottom"));
     pushDiamondConfig(manifestNameKey.get(), projectName);
     // After we upload our config, we upload a new patchset to create the downstreams
+    testRepo.reset(masterWithMergedChange);
     PushOneCommit.Result result =
         createChange(testRepo, "master", "subject", "filename2", "echo Hello", "sometopic");
     result.assertOkStatus();
@@ -471,6 +478,7 @@
   @Test
   public void testDownstreamMergeConflict() throws Exception {
     Project.NameKey manifestNameKey = defaultSetup();
+    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     // Create initial change
     PushOneCommit.Result result = createChange("subject", "filename", "echo Hello");
     // Project name is scoped by test, so we need to get it from our initial change
@@ -480,7 +488,6 @@
     result.assertOkStatus();
     merge(result);
     // Reset to create a sibling
-    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     testRepo.reset(initial);
     // Set up a merge conflict between master and ds_one
     PushOneCommit.Result ds1Result =
@@ -534,6 +541,7 @@
   @Test
   public void testRestrictedVotePermissions() throws Exception {
     Project.NameKey manifestNameKey = defaultSetup();
+    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     // Create initial change
     PushOneCommit.Result result = createChange("subject", "filename", "echo Hello");
     // Project name is scoped by test, so we need to get it from our initial change
@@ -543,7 +551,6 @@
     result.assertOkStatus();
     merge(result);
     // Reset to create a sibling
-    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     testRepo.reset(initial);
     // Set up a merge conflict between master and ds_one
     PushOneCommit.Result ds1Result =
@@ -855,6 +862,7 @@
   public void testContextUser_mergeConflictOnDownstreamVotesOnTopLevel() throws Exception {
     // Branch flow for contextUser is master -> ds_one -> ds_two
     Project.NameKey manifestNameKey = defaultSetup();
+    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
     // 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
@@ -866,7 +874,7 @@
     merge(initialResult);
 
     // Reset to create a sibling
-    ObjectId initial = repo().exactRef("HEAD").getLeaf().getObjectId();
+    testRepo.reset(initial);
     PushOneCommit.Result ds1Result =
         createChange(
             testRepo, "ds_one", "subject", "filename", "echo \"Hello asdfsd World\"", "randtopic");