summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java')
-rw-r--r--gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java83
1 files changed, 67 insertions, 16 deletions
diff --git a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java
index fe138c6ef6..a44f84f659 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryDatabase.java
@@ -14,24 +14,35 @@
package com.google.gerrit.testutil;
-import com.google.gerrit.reviewdb.CurrentSchemaVersion;
-import com.google.gerrit.reviewdb.ReviewDb;
-import com.google.gerrit.reviewdb.SystemConfig;
-import com.google.gerrit.server.config.SystemConfigProvider;
+import com.google.gerrit.reviewdb.client.CurrentSchemaVersion;
+import com.google.gerrit.reviewdb.client.SystemConfig;
+import com.google.gerrit.reviewdb.server.ReviewDb;
+import com.google.gerrit.server.GerritPersonIdent;
+import com.google.gerrit.server.GerritPersonIdentProvider;
+import com.google.gerrit.server.config.AllProjectsName;
+import com.google.gerrit.server.config.GerritServerConfig;
+import com.google.gerrit.server.config.SitePath;
+import com.google.gerrit.server.git.GitRepositoryManager;
+import com.google.gerrit.server.git.LocalDiskRepositoryManager;
import com.google.gerrit.server.schema.Current;
import com.google.gerrit.server.schema.SchemaCreator;
import com.google.gerrit.server.schema.SchemaVersion;
-import com.google.gwtorm.client.OrmException;
-import com.google.gwtorm.client.SchemaFactory;
import com.google.gwtorm.jdbc.Database;
import com.google.gwtorm.jdbc.SimpleDataSource;
+import com.google.gwtorm.server.OrmException;
+import com.google.gwtorm.server.SchemaFactory;
+import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Key;
-import com.google.inject.Provider;
import junit.framework.TestCase;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.lib.Config;
+import org.eclipse.jgit.lib.PersonIdent;
+
import java.io.File;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
@@ -84,8 +95,36 @@ public class InMemoryDatabase implements SchemaFactory<ReviewDb> {
database = new Database<ReviewDb>(dataSource, ReviewDb.class);
schemaVersion =
- Guice.createInjector(new SchemaVersion.Module()).getBinding(
- Key.get(SchemaVersion.class, Current.class)).getProvider().get();
+ Guice.createInjector(new AbstractModule() {
+ @Override
+ protected void configure() {
+ install(new SchemaVersion.Module());
+
+ bind(File.class) //
+ .annotatedWith(SitePath.class) //
+ .toInstance(new File("."));
+
+ Config cfg = new Config();
+ cfg.setString("gerrit", null, "basePath", "git");
+ cfg.setString("user", null, "name", "Gerrit Code Review");
+ cfg.setString("user", null, "email", "gerrit@localhost");
+
+ bind(Config.class) //
+ .annotatedWith(GerritServerConfig.class) //
+ .toInstance(cfg);
+
+ bind(PersonIdent.class) //
+ .annotatedWith(GerritPersonIdent.class) //
+ .toProvider(GerritPersonIdentProvider.class);
+
+ bind(AllProjectsName.class)
+ .toInstance(new AllProjectsName("All-Projects"));
+
+ bind(GitRepositoryManager.class) //
+ .to(LocalDiskRepositoryManager.class);
+ }
+ }).getBinding(Key.get(SchemaVersion.class, Current.class))
+ .getProvider().get();
} catch (SQLException e) {
throw new OrmException(e);
}
@@ -106,7 +145,18 @@ public class InMemoryDatabase implements SchemaFactory<ReviewDb> {
created = true;
final ReviewDb c = open();
try {
- new SchemaCreator(new File("."), schemaVersion).create(c);
+ try {
+ new SchemaCreator(
+ new File("."),
+ schemaVersion,
+ null,
+ new AllProjectsName("Test-Projects"),
+ new PersonIdent("name", "email@site")).create(c);
+ } catch (IOException e) {
+ throw new OrmException("Cannot create in-memory database", e);
+ } catch (ConfigInvalidException e) {
+ throw new OrmException("Cannot create in-memory database", e);
+ }
} finally {
c.close();
}
@@ -128,12 +178,13 @@ public class InMemoryDatabase implements SchemaFactory<ReviewDb> {
}
}
- public SystemConfig getSystemConfig() {
- return new SystemConfigProvider(this, new Provider<SchemaVersion>() {
- public SchemaVersion get() {
- return schemaVersion;
- }
- }).get();
+ public SystemConfig getSystemConfig() throws OrmException {
+ final ReviewDb c = open();
+ try {
+ return c.systemConfig().get(new SystemConfig.Key());
+ } finally {
+ c.close();
+ }
}
public CurrentSchemaVersion getSchemaVersion() throws OrmException {