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