Merge branch 'stable-3.1'
* stable-3.1: Import from com.google.inject rather than javax.inject ProjectCache: Remove declarations of unthrown IOException ProjectIT: Remove unused executor e2e-tests: Collapse the load-tests directory level ChangeSubmitRequirementIT: Show that submit rules are cached on change query Update git submodules Update git submodules Update git submodules QueryChangeIT: Rename to QueryChangesIT QueryChangeIT: Backport moreChangesIndicatorDoesNotWronglyCopyToUnrelatedChanges Backport QueryChangeIT JettyServer: Stop using deprecated SslContextFactory constructor Change-Id: Idf396f762f59eb91c813de985b1bb1b6f11d13c1
This commit is contained in:
@@ -18,11 +18,11 @@ import com.google.common.flogger.FluentLogger;
|
||||
import com.google.gerrit.entities.Account;
|
||||
import com.google.gerrit.entities.RefNames;
|
||||
import com.google.gerrit.server.CurrentUser;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import javax.inject.Singleton;
|
||||
import org.eclipse.jgit.lib.Ref;
|
||||
import org.eclipse.jgit.lib.RefDatabase;
|
||||
import org.eclipse.jgit.lib.SymbolicRef;
|
||||
|
||||
@@ -25,11 +25,11 @@ import com.google.gerrit.git.RefUpdateUtil;
|
||||
import com.google.gerrit.server.FanOutExecutor;
|
||||
import com.google.gerrit.server.config.AllUsersName;
|
||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Future;
|
||||
import javax.inject.Inject;
|
||||
import org.eclipse.jgit.lib.BatchRefUpdate;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.transport.PushCertificate;
|
||||
|
||||
@@ -28,9 +28,13 @@ import com.google.gerrit.extensions.common.SubmitRequirementInfo;
|
||||
import com.google.gerrit.extensions.config.FactoryModule;
|
||||
import com.google.gerrit.server.query.change.ChangeData;
|
||||
import com.google.gerrit.server.rules.SubmitRule;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Module;
|
||||
import com.google.inject.Singleton;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ChangeSubmitRequirementIT extends AbstractDaemonTest {
|
||||
@@ -56,22 +60,63 @@ public class ChangeSubmitRequirementIT extends AbstractDaemonTest {
|
||||
};
|
||||
}
|
||||
|
||||
@Inject CustomSubmitRule rule;
|
||||
|
||||
@Test
|
||||
public void checkSubmitRequirementIsPropagated() throws Exception {
|
||||
public void submitRequirementIsPropagated() throws Exception {
|
||||
rule.block(false);
|
||||
PushOneCommit.Result r = createChange();
|
||||
|
||||
ChangeInfo result = gApi.changes().id(r.getChangeId()).get();
|
||||
assertThat(result.requirements).isEmpty();
|
||||
|
||||
rule.block(true);
|
||||
result = gApi.changes().id(r.getChangeId()).get();
|
||||
assertThat(result.requirements).containsExactly(reqInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void submitRequirementIsPropagatedInQuery() throws Exception {
|
||||
rule.block(false);
|
||||
PushOneCommit.Result r = createChange();
|
||||
|
||||
String query = "status:open project:" + project.get();
|
||||
List<ChangeInfo> result = gApi.changes().query(query).get();
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get(0).requirements).isEmpty();
|
||||
|
||||
// Submit rule behavior is changed, but the query still returns
|
||||
// the previous result from the index
|
||||
rule.block(true);
|
||||
result = gApi.changes().query(query).get();
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get(0).requirements).isEmpty();
|
||||
|
||||
// The submit rule result is updated after the change is reindexed
|
||||
gApi.changes().id(r.getChangeId()).index();
|
||||
result = gApi.changes().query(query).get();
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get(0).requirements).containsExactly(reqInfo);
|
||||
}
|
||||
|
||||
@Singleton
|
||||
private static class CustomSubmitRule implements SubmitRule {
|
||||
private final AtomicBoolean block = new AtomicBoolean(true);
|
||||
|
||||
public void block(boolean block) {
|
||||
this.block.set(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<SubmitRecord> evaluate(ChangeData changeData) {
|
||||
SubmitRecord record = new SubmitRecord();
|
||||
record.labels = new ArrayList<>();
|
||||
record.status = SubmitRecord.Status.NOT_READY;
|
||||
record.requirements = ImmutableList.of(req);
|
||||
return Optional.of(record);
|
||||
if (block.get()) {
|
||||
SubmitRecord record = new SubmitRecord();
|
||||
record.labels = new ArrayList<>();
|
||||
record.status = SubmitRecord.Status.NOT_READY;
|
||||
record.requirements = ImmutableList.of(req);
|
||||
return Optional.of(record);
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ import org.eclipse.jgit.junit.TestRepository;
|
||||
import org.junit.Test;
|
||||
|
||||
@NoHttpd
|
||||
public class QueryChangeIT extends AbstractDaemonTest {
|
||||
public class QueryChangesIT extends AbstractDaemonTest {
|
||||
@Inject private AccountOperations accountOperations;
|
||||
@Inject private ProjectOperations projectOperations;
|
||||
@Inject private Provider<QueryChanges> queryChangesProvider;
|
||||
Reference in New Issue
Block a user