Merge "SchemaUpgradeTestEnvironment: Automatically inject test members"
This commit is contained in:
@@ -30,11 +30,11 @@ import com.google.inject.Inject;
|
||||
import com.google.inject.Injector;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.util.Providers;
|
||||
import org.junit.rules.TestRule;
|
||||
import org.junit.runner.Description;
|
||||
import org.junit.rules.MethodRule;
|
||||
import org.junit.runners.model.FrameworkMethod;
|
||||
import org.junit.runners.model.Statement;
|
||||
|
||||
public final class SchemaUpgradeTestEnvironment implements TestRule {
|
||||
public final class SchemaUpgradeTestEnvironment implements MethodRule {
|
||||
@Inject private AccountManager accountManager;
|
||||
@Inject private IdentifiedUser.GenericFactory userFactory;
|
||||
@Inject private SchemaFactory<ReviewDb> schemaFactory;
|
||||
@@ -44,17 +44,16 @@ public final class SchemaUpgradeTestEnvironment implements TestRule {
|
||||
@Inject private InMemoryDatabase inMemoryDatabase;
|
||||
|
||||
private ReviewDb db;
|
||||
private Injector injector;
|
||||
private LifecycleManager lifecycle;
|
||||
|
||||
@Override
|
||||
public Statement apply(Statement statement, Description description) {
|
||||
public Statement apply(Statement base, FrameworkMethod method, Object target) {
|
||||
return new Statement() {
|
||||
@Override
|
||||
public void evaluate() throws Throwable {
|
||||
try {
|
||||
setUp();
|
||||
statement.evaluate();
|
||||
setUp(target);
|
||||
base.evaluate();
|
||||
} finally {
|
||||
tearDown();
|
||||
}
|
||||
@@ -62,14 +61,6 @@ public final class SchemaUpgradeTestEnvironment implements TestRule {
|
||||
};
|
||||
}
|
||||
|
||||
public ReviewDb getDb() {
|
||||
return db;
|
||||
}
|
||||
|
||||
public Injector getInjector() {
|
||||
return injector;
|
||||
}
|
||||
|
||||
public void setApiUser(Account.Id id) {
|
||||
IdentifiedUser user = userFactory.create(id);
|
||||
requestContext.setContext(
|
||||
@@ -86,8 +77,8 @@ public final class SchemaUpgradeTestEnvironment implements TestRule {
|
||||
});
|
||||
}
|
||||
|
||||
private void setUp() throws Exception {
|
||||
injector = Guice.createInjector(new InMemoryModule());
|
||||
private void setUp(Object target) throws Exception {
|
||||
Injector injector = Guice.createInjector(new InMemoryModule());
|
||||
injector.injectMembers(this);
|
||||
lifecycle = new LifecycleManager();
|
||||
lifecycle.add(injector);
|
||||
@@ -98,6 +89,9 @@ public final class SchemaUpgradeTestEnvironment implements TestRule {
|
||||
}
|
||||
db = schemaFactory.open();
|
||||
setApiUser(accountManager.authenticate(AuthRequest.forUser("user")).getAccountId());
|
||||
|
||||
// Inject target members after setting API user, so it can @Inject a ReviewDb if it wants.
|
||||
injector.injectMembers(target);
|
||||
}
|
||||
|
||||
private void tearDown() {
|
||||
|
@@ -48,8 +48,8 @@ public class Schema_150_to_151_Test {
|
||||
|
||||
@Inject private CreateGroup.Factory createGroupFactory;
|
||||
@Inject private Schema_151 schema151;
|
||||
@Inject private ReviewDb db;
|
||||
|
||||
private ReviewDb db;
|
||||
private Connection connection;
|
||||
private PreparedStatement createdOnRetrieval;
|
||||
private PreparedStatement createdOnUpdate;
|
||||
@@ -57,8 +57,6 @@ public class Schema_150_to_151_Test {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
testEnv.getInjector().injectMembers(this);
|
||||
db = testEnv.getDb();
|
||||
assume().that(db instanceof JdbcSchema).isTrue();
|
||||
|
||||
connection = ((JdbcSchema) db).getConnection();
|
||||
|
@@ -53,15 +53,13 @@ public class Schema_159_to_160_Test {
|
||||
@Inject private GerritApi gApi;
|
||||
@Inject private GitRepositoryManager repoManager;
|
||||
@Inject private Provider<IdentifiedUser> userProvider;
|
||||
@Inject private ReviewDb db;
|
||||
@Inject private Schema_160 schema160;
|
||||
|
||||
private ReviewDb db;
|
||||
private Account.Id accountId;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
testEnv.getInjector().injectMembers(this);
|
||||
db = testEnv.getDb();
|
||||
accountId = userProvider.get().getAccountId();
|
||||
}
|
||||
|
||||
|
@@ -35,7 +35,6 @@ import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -47,16 +46,9 @@ public class Schema_161_to_162_Test {
|
||||
@Inject private GerritApi gApi;
|
||||
@Inject private GitRepositoryManager repoManager;
|
||||
@Inject private Schema_162 schema162;
|
||||
@Inject private ReviewDb db;
|
||||
@Inject @GerritPersonIdent private PersonIdent serverUser;
|
||||
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
testEnv.getInjector().injectMembers(this);
|
||||
db = testEnv.getDb();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void skipCorrectInheritance() throws Exception {
|
||||
assertThatAllUsersInheritsFrom(allProjectsName.get());
|
||||
|
Reference in New Issue
Block a user