Add a way to disable the account index from tests
Change-Id: I556051539085e949ddbc8084210928992a667562
This commit is contained in:
@@ -101,6 +101,8 @@ import com.google.gerrit.server.git.meta.MetaDataUpdate;
|
||||
import com.google.gerrit.server.group.InternalGroup;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.group.db.Groups;
|
||||
import com.google.gerrit.server.index.account.AccountIndex;
|
||||
import com.google.gerrit.server.index.account.AccountIndexCollection;
|
||||
import com.google.gerrit.server.index.account.AccountIndexer;
|
||||
import com.google.gerrit.server.index.change.ChangeIndex;
|
||||
import com.google.gerrit.server.index.change.ChangeIndexCollection;
|
||||
@@ -271,6 +273,7 @@ public abstract class AbstractDaemonTest {
|
||||
protected BlockStrategy noSleepBlockStrategy = t -> {}; // Don't sleep in tests.
|
||||
|
||||
@Inject private ChangeIndexCollection changeIndexes;
|
||||
@Inject private AccountIndexCollection accountIndexes;
|
||||
@Inject private EventRecorder.Factory eventRecorderFactory;
|
||||
@Inject private InProcessProtocol inProcessProtocol;
|
||||
@Inject private Provider<AnonymousUser> anonymousUser;
|
||||
@@ -878,6 +881,23 @@ public abstract class AbstractDaemonTest {
|
||||
};
|
||||
}
|
||||
|
||||
protected AutoCloseable disableAccountIndex() {
|
||||
AccountIndex searchIndex = accountIndexes.getSearchIndex();
|
||||
if (!(searchIndex instanceof DisabledAccountIndex)) {
|
||||
accountIndexes.setSearchIndex(new DisabledAccountIndex(searchIndex), false);
|
||||
}
|
||||
|
||||
return new AutoCloseable() {
|
||||
@Override
|
||||
public void close() {
|
||||
AccountIndex searchIndex = accountIndexes.getSearchIndex();
|
||||
if (searchIndex instanceof DisabledAccountIndex) {
|
||||
accountIndexes.setSearchIndex(((DisabledAccountIndex) searchIndex).unwrap(), false);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected static Gson newGson() {
|
||||
return OutputFormat.JSON_COMPACT.newGson();
|
||||
}
|
||||
|
||||
71
java/com/google/gerrit/acceptance/DisabledAccountIndex.java
Normal file
71
java/com/google/gerrit/acceptance/DisabledAccountIndex.java
Normal file
@@ -0,0 +1,71 @@
|
||||
// Copyright (C) 2018 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.acceptance;
|
||||
|
||||
import com.google.gerrit.index.QueryOptions;
|
||||
import com.google.gerrit.index.Schema;
|
||||
import com.google.gerrit.index.query.DataSource;
|
||||
import com.google.gerrit.index.query.Predicate;
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
import com.google.gerrit.server.account.AccountState;
|
||||
import com.google.gerrit.server.index.account.AccountIndex;
|
||||
|
||||
/** This class wraps an index and assumes the search index can't handle any queries. */
|
||||
public class DisabledAccountIndex implements AccountIndex {
|
||||
private final AccountIndex index;
|
||||
|
||||
public DisabledAccountIndex(AccountIndex index) {
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public AccountIndex unwrap() {
|
||||
return index;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Schema<AccountState> getSchema() {
|
||||
return index.getSchema();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
index.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void replace(AccountState obj) {
|
||||
throw new UnsupportedOperationException("AccountIndex is disabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Account.Id key) {
|
||||
throw new UnsupportedOperationException("AccountIndex is disabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAll() {
|
||||
throw new UnsupportedOperationException("AccountIndex is disabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSource<AccountState> getSource(Predicate<AccountState> p, QueryOptions opts) {
|
||||
throw new UnsupportedOperationException("AccountIndex is disabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markReady(boolean ready) {
|
||||
throw new UnsupportedOperationException("AccountIndex is disabled");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user