Merge "DeletePreconditions: Use directly SubscriptionGraph"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java
index de96ec1..e35711a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java
@@ -40,7 +40,7 @@
import com.google.gerrit.server.restapi.project.ListChildProjects;
import com.google.gerrit.server.submit.MergeOpRepoManager;
import com.google.gerrit.server.submit.SubmoduleConflictException;
-import com.google.gerrit.server.submit.SubmoduleOp;
+import com.google.gerrit.server.submit.SubscriptionGraph;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -59,7 +59,7 @@
private final String pluginName;
private final Provider<InternalChangeQuery> queryProvider;
private final GitRepositoryManager repoManager;
- private final SubmoduleOp.Factory subOpFactory;
+ private final SubscriptionGraph.Factory subscriptionGraphFactory;
private final Provider<CurrentUser> userProvider;
private final ProtectedProjects protectedProjects;
private final PermissionBackend permissionBackend;
@@ -72,7 +72,7 @@
@PluginName String pluginName,
Provider<InternalChangeQuery> queryProvider,
GitRepositoryManager repoManager,
- SubmoduleOp.Factory subOpFactory,
+ SubscriptionGraph.Factory subscriptionGraphFactory,
Provider<CurrentUser> userProvider,
ProtectedProjects protectedProjects,
PermissionBackend permissionBackend) {
@@ -82,7 +82,7 @@
this.pluginName = pluginName;
this.queryProvider = queryProvider;
this.repoManager = repoManager;
- this.subOpFactory = subOpFactory;
+ this.subscriptionGraphFactory = subscriptionGraphFactory;
this.userProvider = userProvider;
this.protectedProjects = protectedProjects;
this.permissionBackend = permissionBackend;
@@ -156,9 +156,9 @@
repo.getRefDatabase().getRefsByPrefix(REFS_HEADS).stream()
.map(ref -> BranchNameKey.create(projectNameKey, ref.getName()))
.collect(toSet());
- SubmoduleOp sub = subOpFactory.create(branches, mergeOp);
+ SubscriptionGraph graph = subscriptionGraphFactory.compute(branches, mergeOp);
for (BranchNameKey b : branches) {
- if (sub.hasSuperproject(b)) {
+ if (graph.hasSuperproject(b)) {
throw new CannotDeleteProjectException("Project is subscribed by other projects.");
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java
index 235dc3c..e126c19 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java
@@ -14,15 +14,6 @@
package com.googlesource.gerrit.plugins.deleteproject;
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.gerrit.testing.GerritJUnit.assertThrows;
-import static com.googlesource.gerrit.plugins.deleteproject.DeleteOwnProjectCapability.DELETE_OWN_PROJECT;
-import static com.googlesource.gerrit.plugins.deleteproject.DeleteProjectCapability.DELETE_PROJECT;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
import com.google.common.collect.ImmutableList;
import com.google.gerrit.entities.Project;
import com.google.gerrit.exceptions.StorageException;
@@ -42,7 +33,7 @@
import com.google.gerrit.server.query.change.InternalChangeQuery;
import com.google.gerrit.server.restapi.project.ListChildProjects;
import com.google.gerrit.server.submit.MergeOpRepoManager;
-import com.google.gerrit.server.submit.SubmoduleOp;
+import com.google.gerrit.server.submit.SubscriptionGraph;
import com.google.inject.Provider;
import org.junit.Before;
import org.junit.Test;
@@ -50,6 +41,15 @@
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
+import static com.googlesource.gerrit.plugins.deleteproject.DeleteOwnProjectCapability.DELETE_OWN_PROJECT;
+import static com.googlesource.gerrit.plugins.deleteproject.DeleteProjectCapability.DELETE_PROJECT;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
@RunWith(MockitoJUnitRunner.class)
public class DeletePreconditionsTest {
private static final String PLUGIN_NAME = "delete-project";
@@ -60,7 +60,7 @@
@Mock private Provider<MergeOpRepoManager> mergeOpProvider;
@Mock private Provider<InternalChangeQuery> queryProvider;
@Mock private GitRepositoryManager repoManager;
- @Mock private SubmoduleOp.Factory subOpFactory;
+ @Mock private SubscriptionGraph.Factory subscriptionGraphFactory;
@Mock private CurrentUser currentUser;
@Mock private Provider<CurrentUser> userProvider;
@Mock private ProjectState state;
@@ -84,7 +84,7 @@
PLUGIN_NAME,
queryProvider,
repoManager,
- subOpFactory,
+ subscriptionGraphFactory,
userProvider,
protectedProjects,
permissionBackend);