GroupCheckerImpl: Mock directly the repository in unit-tests The unit-tests of GroupCheckerImpl were targeting the internal behaviour of how the repository works rather than checking directly the expected outcome. That was working until the JGit internal behaviour changes and the tests are failing without an apparent reason. Mock directly the Repository.exactRef() which is the method that's expected to be called when the groups are checked. Change-Id: I156c816803c3d3a87119f24e6839626a07034176
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/index/GroupCheckerImplTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/index/GroupCheckerImplTest.java index 09f8f59..c612119 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/multisite/index/GroupCheckerImplTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/index/GroupCheckerImplTest.java
@@ -30,7 +30,6 @@ import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectIdRef; import org.eclipse.jgit.lib.Ref; -import org.eclipse.jgit.lib.RefDatabase; import org.eclipse.jgit.lib.Repository; import org.junit.Before; import org.junit.Test; @@ -45,13 +44,11 @@ GroupCheckerImpl objectUnderTest; @Mock private GitRepositoryManager repoManagerMock; - @Mock private RefDatabase refDatabaseMock; @Mock private Repository repoMock; @Before public void setUp() throws Exception { doReturn(repoMock).when(repoManagerMock).openRepository(allUsers); - doReturn(refDatabaseMock).when(repoMock).getRefDatabase(); objectUnderTest = new GroupCheckerImpl(repoManagerMock, allUsers); } @@ -118,6 +115,6 @@ throws IOException { String groupRefName = RefNames.refsGroups(AccountGroup.uuid(groupUUID.toString())); ObjectIdRef.Unpeeled aRef = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, groupRefName, objectId); - doReturn(objectId == null ? null : aRef).when(refDatabaseMock).exactRef(groupRefName); + doReturn(objectId == null ? null : aRef).when(repoMock).exactRef(groupRefName); } }