Use real executors in integration tests.

This commit is contained in:
akwizgran
2019-05-31 12:25:48 +01:00
parent 8fc5c21354
commit 7bf86d9c53
21 changed files with 219 additions and 171 deletions

View File

@@ -1,26 +1,22 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.db.DatabaseConfig;
import org.briarproject.bramble.api.db.DatabaseExecutor;
import java.io.File;
import java.util.concurrent.Executor;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module
public class TestDatabaseModule {
public class TestDatabaseConfigModule {
private final DatabaseConfig config;
public TestDatabaseModule() {
public TestDatabaseConfigModule() {
this(new File("."));
}
public TestDatabaseModule(File dir) {
public TestDatabaseConfigModule(File dir) {
config = new TestDatabaseConfig(dir);
}
@@ -28,11 +24,4 @@ public class TestDatabaseModule {
DatabaseConfig provideDatabaseConfig() {
return config;
}
@Provides
@Singleton
@DatabaseExecutor
Executor provideDatabaseExecutor() {
return new ImmediateExecutor();
}
}

View File

@@ -1,94 +0,0 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.crypto.SecretKey;
import org.briarproject.bramble.api.lifecycle.IoExecutor;
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.lifecycle.Service;
import org.briarproject.bramble.api.lifecycle.ShutdownManager;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.RUNNING;
@Module
public class TestLifecycleModule {
@Provides
LifecycleManager provideLifecycleManager() {
@NotNullByDefault
LifecycleManager lifecycleManager = new LifecycleManager() {
@Override
public void registerService(Service s) {
}
@Override
public void registerOpenDatabaseHook(OpenDatabaseHook hook) {
}
@Override
public void registerForShutdown(ExecutorService e) {
}
@Override
public StartResult startServices(SecretKey dbKey) {
return StartResult.SUCCESS;
}
@Override
public void stopServices() {
}
@Override
public void waitForDatabase() {
}
@Override
public void waitForStartup() {
}
@Override
public void waitForShutdown() {
}
@Override
public LifecycleState getLifecycleState() {
return RUNNING;
}
};
return lifecycleManager;
}
@Provides
ShutdownManager provideShutdownManager() {
@NotNullByDefault
ShutdownManager shutdownManager = new ShutdownManager() {
@Override
public int addShutdownHook(Runnable hook) {
return 0;
}
@Override
public boolean removeShutdownHook(int handle) {
return true;
}
};
return shutdownManager;
}
@Provides
@IoExecutor
@Singleton
Executor provideIoExecutor() {
return Executors.newCachedThreadPool();
}
}

View File

@@ -2,16 +2,28 @@ package org.briarproject.bramble.plugin.tor;
import org.briarproject.bramble.api.battery.BatteryManager;
import org.briarproject.bramble.api.event.EventBus;
import org.briarproject.bramble.api.lifecycle.IoExecutor;
import org.briarproject.bramble.api.network.NetworkManager;
import org.briarproject.bramble.api.plugin.BackoffFactory;
import org.briarproject.bramble.api.plugin.duplex.DuplexPlugin;
import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.system.LocationUtils;
import org.briarproject.bramble.api.system.ResourceProvider;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.plugin.PluginModule;
import org.briarproject.bramble.properties.PropertiesModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.BrambleJavaIntegrationTestComponent;
import org.briarproject.bramble.test.BrambleTestCase;
import org.briarproject.bramble.test.DaggerBrambleJavaIntegrationTestComponent;
import org.briarproject.bramble.transport.TransportModule;
import org.briarproject.bramble.util.OsUtils;
import org.briarproject.bramble.versioning.VersioningModule;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -22,7 +34,6 @@ import org.junit.runners.Parameterized.Parameters;
import java.io.File;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.logging.Logger;
import javax.inject.Inject;
@@ -30,6 +41,7 @@ import javax.net.SocketFactory;
import static java.util.Collections.singletonList;
import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.logging.Logger.getLogger;
import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory;
import static org.briarproject.bramble.test.TestUtils.getTestDirectory;
import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled;
@@ -44,14 +56,17 @@ public class BridgeTest extends BrambleTestCase {
public static Iterable<String> data() {
BrambleJavaIntegrationTestComponent component =
DaggerBrambleJavaIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
return component.getCircumventionProvider().getBridges(false);
}
private final static long TIMEOUT = SECONDS.toMillis(30);
private final static Logger LOG =
Logger.getLogger(BridgeTest.class.getName());
private final static Logger LOG = getLogger(BridgeTest.class.getName());
@Inject
@IoExecutor
Executor ioExecutor;
@Inject
NetworkManager networkManager;
@Inject
@@ -86,9 +101,9 @@ public class BridgeTest extends BrambleTestCase {
BrambleJavaIntegrationTestComponent component =
DaggerBrambleJavaIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
Executor ioExecutor = Executors.newCachedThreadPool();
LocationUtils locationUtils = () -> "US";
SocketFactory torSocketFactory = SocketFactory.getDefault();
@@ -147,4 +162,18 @@ public class BridgeTest extends BrambleTestCase {
}
}
private static void injectEagerSingletons(
BrambleJavaIntegrationTestComponent component) {
component.inject(new ContactModule.EagerSingletons());
component.inject(new CryptoExecutorModule.EagerSingletons());
component.inject(new DatabaseExecutorModule.EagerSingletons());
component.inject(new IdentityModule.EagerSingletons());
component.inject(new LifecycleModule.EagerSingletons());
component.inject(new PluginModule.EagerSingletons());
component.inject(new PropertiesModule.EagerSingletons());
component.inject(new SystemModule.EagerSingletons());
component.inject(new TransportModule.EagerSingletons());
component.inject(new ValidationModule.EagerSingletons());
component.inject(new VersioningModule.EagerSingletons());
}
}

View File

@@ -2,12 +2,28 @@ package org.briarproject.bramble.test;
import org.briarproject.bramble.BrambleJavaModule;
import org.briarproject.bramble.battery.DefaultBatteryManagerModule;
import org.briarproject.bramble.client.ClientModule;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.plugin.PluginModule;
import org.briarproject.bramble.plugin.tor.BridgeTest;
import org.briarproject.bramble.plugin.tor.CircumventionProvider;
import org.briarproject.bramble.properties.PropertiesModule;
import org.briarproject.bramble.record.RecordModule;
import org.briarproject.bramble.settings.SettingsModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.transport.TransportModule;
import org.briarproject.bramble.versioning.VersioningModule;
import javax.inject.Singleton;
@@ -15,17 +31,57 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestDatabaseConfigModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
BrambleJavaModule.class,
TestLifecycleModule.class,
ClientModule.class,
ContactModule.class,
CryptoExecutorModule.class,
CryptoModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultBatteryManagerModule.class,
DefaultEventExecutorModule.class,
EventModule.class,
PluginModule.class, // needed for BackoffFactory
IdentityModule.class,
LifecycleModule.class,
RecordModule.class,
PluginModule.class,
PropertiesModule.class,
TransportModule.class,
SettingsModule.class,
SyncModule.class,
SystemModule.class,
ValidationModule.class,
VersioningModule.class
})
public interface BrambleJavaIntegrationTestComponent {
void inject(BridgeTest init);
void inject(ContactModule.EagerSingletons init);
void inject(CryptoExecutorModule.EagerSingletons init);
void inject(DatabaseExecutorModule.EagerSingletons init);
void inject(IdentityModule.EagerSingletons init);
void inject(LifecycleModule.EagerSingletons init);
void inject(PluginModule.EagerSingletons init);
void inject(PropertiesModule.EagerSingletons init);
void inject(SystemModule.EagerSingletons init);
void inject(TransportModule.EagerSingletons init);
void inject(ValidationModule.EagerSingletons init);
void inject(VersioningModule.EagerSingletons init);
CircumventionProvider getCircumventionProvider();
}

View File

@@ -2,7 +2,7 @@ package org.briarproject.briar.blog;
import org.briarproject.bramble.api.identity.LocalAuthor;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.blog.Blog;
import org.briarproject.briar.api.blog.BlogCommentHeader;
import org.briarproject.briar.api.blog.BlogManager;
@@ -65,18 +65,22 @@ public class BlogManagerIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -5,11 +5,12 @@ import org.briarproject.bramble.api.identity.IdentityManager;
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestUtils;
import org.briarproject.bramble.transport.TransportModule;
import org.briarproject.bramble.versioning.VersioningModule;
@@ -45,10 +46,10 @@ public class FeedManagerIntegrationTest extends BriarTestCase {
assertTrue(testDir.mkdirs());
FeedManagerIntegrationTestComponent component =
DaggerFeedManagerIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(testFile))
.build();
component.inject(this);
.testDatabaseConfigModule(
new TestDatabaseConfigModule(testFile)).build();
injectEagerSingletons(component);
component.inject(this);
IdentityManager identityManager = component.getIdentityManager();
Identity identity = identityManager.createIdentity("feedTest");
@@ -124,6 +125,7 @@ public class FeedManagerIntegrationTest extends BriarTestCase {
component.inject(new BlogModule.EagerSingletons());
component.inject(new ContactModule.EagerSingletons());
component.inject(new CryptoExecutorModule.EagerSingletons());
component.inject(new DatabaseExecutorModule.EagerSingletons());
component.inject(new FeedModule.EagerSingletons());
component.inject(new IdentityModule.EagerSingletons());
component.inject(new LifecycleModule.EagerSingletons());

View File

@@ -7,6 +7,7 @@ import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
@@ -15,7 +16,7 @@ import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestPluginConfigModule;
import org.briarproject.bramble.test.TestSecureRandomModule;
import org.briarproject.bramble.test.TestSocksModule;
@@ -33,22 +34,23 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestDatabaseModule.class,
TestDatabaseConfigModule.class,
TestDnsModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
TestSocksModule.class,
TestDnsModule.class,
BlogModule.class,
BriarClientModule.class,
ClientModule.class,
ContactModule.class,
CryptoModule.class,
CryptoExecutorModule.class,
BlogModule.class,
FeedModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultEventExecutorModule.class,
EventModule.class,
FeedModule.class,
IdentityModule.class,
LifecycleModule.class,
SyncModule.class,
@@ -67,6 +69,8 @@ interface FeedManagerIntegrationTestComponent {
void inject(CryptoExecutorModule.EagerSingletons init);
void inject(DatabaseExecutorModule.EagerSingletons init);
void inject(FeedModule.EagerSingletons init);
void inject(IdentityModule.EagerSingletons init);

View File

@@ -1,7 +1,7 @@
package org.briarproject.briar.forum;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.forum.Forum;
import org.briarproject.briar.api.forum.ForumManager;
import org.briarproject.briar.api.forum.ForumPost;
@@ -56,18 +56,22 @@ public class ForumManagerTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -22,7 +22,7 @@ import org.briarproject.bramble.api.properties.TransportPropertyManager;
import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.api.sync.Message;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
@@ -106,18 +106,22 @@ public class IntroductionIntegrationTest
protected void createComponents() {
IntroductionIntegrationTestComponent component =
DaggerIntroductionIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerIntroductionIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerIntroductionIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerIntroductionIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -5,6 +5,7 @@ import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
@@ -15,7 +16,7 @@ import org.briarproject.bramble.record.RecordModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestPluginConfigModule;
import org.briarproject.bramble.test.TestSecureRandomModule;
import org.briarproject.bramble.transport.TransportModule;
@@ -35,7 +36,7 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestDatabaseModule.class,
TestDatabaseConfigModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
BlogModule.class,
@@ -45,6 +46,7 @@ import dagger.Component;
CryptoModule.class,
CryptoExecutorModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultEventExecutorModule.class,
EventModule.class,

View File

@@ -8,7 +8,9 @@ import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.transport.TransportModule;
@@ -47,8 +49,8 @@ public class MessageSizeIntegrationTest extends BriarTestCase {
public MessageSizeIntegrationTest() {
MessageSizeIntegrationTestComponent component =
DaggerMessageSizeIntegrationTestComponent.builder().build();
component.inject(this);
injectEagerSingletons(component);
component.inject(this);
}
@Test
@@ -90,8 +92,10 @@ public class MessageSizeIntegrationTest extends BriarTestCase {
MessageSizeIntegrationTestComponent component) {
component.inject(new ContactModule.EagerSingletons());
component.inject(new CryptoExecutorModule.EagerSingletons());
component.inject(new DatabaseExecutorModule.EagerSingletons());
component.inject(new ForumModule.EagerSingletons());
component.inject(new IdentityModule.EagerSingletons());
component.inject(new LifecycleModule.EagerSingletons());
component.inject(new MessagingModule.EagerSingletons());
component.inject(new SystemModule.EagerSingletons());
component.inject(new TransportModule.EagerSingletons());

View File

@@ -5,15 +5,16 @@ import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestLifecycleModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestPluginConfigModule;
import org.briarproject.bramble.test.TestSecureRandomModule;
import org.briarproject.bramble.transport.TransportModule;
@@ -27,8 +28,7 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestDatabaseModule.class,
TestLifecycleModule.class,
TestDatabaseConfigModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
BriarClientModule.class,
@@ -37,11 +37,13 @@ import dagger.Component;
CryptoModule.class,
CryptoExecutorModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultEventExecutorModule.class,
EventModule.class,
ForumModule.class,
IdentityModule.class,
LifecycleModule.class,
MessagingModule.class,
SyncModule.class,
SystemModule.class,
@@ -57,10 +59,14 @@ interface MessageSizeIntegrationTestComponent {
void inject(CryptoExecutorModule.EagerSingletons init);
void inject(DatabaseExecutorModule.EagerSingletons init);
void inject(ForumModule.EagerSingletons init);
void inject(IdentityModule.EagerSingletons init);
void inject(LifecycleModule.EagerSingletons init);
void inject(MessagingModule.EagerSingletons init);
void inject(SystemModule.EagerSingletons init);

View File

@@ -20,11 +20,13 @@ import org.briarproject.bramble.api.transport.StreamReaderFactory;
import org.briarproject.bramble.api.transport.StreamWriter;
import org.briarproject.bramble.api.transport.StreamWriterFactory;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.transport.TransportModule;
import org.briarproject.bramble.versioning.VersioningModule;
import org.briarproject.briar.api.messaging.MessagingManager;
@@ -71,10 +73,12 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
public void setUp() {
assertTrue(testDir.mkdirs());
alice = DaggerSimplexMessagingIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(aliceDir)).build();
.testDatabaseConfigModule(
new TestDatabaseConfigModule(aliceDir)).build();
injectEagerSingletons(alice);
bob = DaggerSimplexMessagingIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(bobDir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(bobDir))
.build();
injectEagerSingletons(bob);
}
@@ -207,6 +211,8 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
private static void injectEagerSingletons(
SimplexMessagingIntegrationTestComponent component) {
component.inject(new ContactModule.EagerSingletons());
component.inject(new CryptoExecutorModule.EagerSingletons());
component.inject(new DatabaseExecutorModule.EagerSingletons());
component.inject(new IdentityModule.EagerSingletons());
component.inject(new LifecycleModule.EagerSingletons());
component.inject(new MessagingModule.EagerSingletons());

View File

@@ -10,8 +10,10 @@ import org.briarproject.bramble.api.transport.StreamReaderFactory;
import org.briarproject.bramble.api.transport.StreamWriterFactory;
import org.briarproject.bramble.client.ClientModule;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
@@ -21,8 +23,7 @@ import org.briarproject.bramble.record.RecordModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestCryptoExecutorModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestPluginConfigModule;
import org.briarproject.bramble.test.TestSecureRandomModule;
import org.briarproject.bramble.transport.TransportModule;
@@ -37,15 +38,16 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestCryptoExecutorModule.class,
TestDatabaseModule.class,
TestDatabaseConfigModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
BriarClientModule.class,
ClientModule.class,
ContactModule.class,
CryptoExecutorModule.class,
CryptoModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultEventExecutorModule.class,
EventModule.class,
@@ -61,8 +63,12 @@ import dagger.Component;
})
interface SimplexMessagingIntegrationTestComponent {
void inject(CryptoExecutorModule.EagerSingletons init);
void inject(ContactModule.EagerSingletons init);
void inject(DatabaseExecutorModule.EagerSingletons init);
void inject(IdentityModule.EagerSingletons init);
void inject(LifecycleModule.EagerSingletons init);

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.identity.AuthorId;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.privategroup.GroupMember;
import org.briarproject.briar.api.privategroup.GroupMessage;
import org.briarproject.briar.api.privategroup.GroupMessageHeader;
@@ -70,18 +70,22 @@ public class PrivateGroupIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.contact.Contact;
import org.briarproject.bramble.api.data.BdfList;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.privategroup.GroupMember;
import org.briarproject.briar.api.privategroup.GroupMessage;
@@ -59,18 +59,22 @@ public class PrivateGroupManagerIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -2,7 +2,7 @@ package org.briarproject.briar.privategroup.invitation;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.privategroup.GroupMessage;
@@ -58,18 +58,22 @@ public class GroupInvitationIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -9,7 +9,7 @@ import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.event.EventListener;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.blog.Blog;
import org.briarproject.briar.api.blog.BlogFactory;
import org.briarproject.briar.api.blog.BlogInvitationRequest;
@@ -82,18 +82,22 @@ public class BlogSharingIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -11,7 +11,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.api.sync.Message;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.conversation.ConversationResponse;
import org.briarproject.briar.api.forum.Forum;
@@ -86,18 +86,22 @@ public class ForumSharingIntegrationTest
protected void createComponents() {
BriarIntegrationTestComponent component =
DaggerBriarIntegrationTestComponent.builder().build();
injectEagerSingletons(component);
component.inject(this);
c0 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t0Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t0Dir))
.build();
injectEagerSingletons(c0);
c1 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t1Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t1Dir))
.build();
injectEagerSingletons(c1);
c2 = DaggerBriarIntegrationTestComponent.builder()
.testDatabaseModule(new TestDatabaseModule(t2Dir)).build();
.testDatabaseConfigModule(new TestDatabaseConfigModule(t2Dir))
.build();
injectEagerSingletons(c2);
}

View File

@@ -30,6 +30,7 @@ import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.transport.StreamWriter;
import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.identity.IdentityModule;
import org.briarproject.bramble.lifecycle.LifecycleModule;
import org.briarproject.bramble.properties.PropertiesModule;
@@ -188,6 +189,7 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
component.inject(new BlogModule.EagerSingletons());
component.inject(new ContactModule.EagerSingletons());
component.inject(new CryptoExecutorModule.EagerSingletons());
component.inject(new DatabaseExecutorModule.EagerSingletons());
component.inject(new ForumModule.EagerSingletons());
component.inject(new GroupInvitationModule.EagerSingletons());
component.inject(new IdentityModule.EagerSingletons());

View File

@@ -14,6 +14,7 @@ import org.briarproject.bramble.contact.ContactModule;
import org.briarproject.bramble.crypto.CryptoExecutorModule;
import org.briarproject.bramble.crypto.CryptoModule;
import org.briarproject.bramble.data.DataModule;
import org.briarproject.bramble.db.DatabaseExecutorModule;
import org.briarproject.bramble.db.DatabaseModule;
import org.briarproject.bramble.event.DefaultEventExecutorModule;
import org.briarproject.bramble.event.EventModule;
@@ -24,7 +25,7 @@ import org.briarproject.bramble.record.RecordModule;
import org.briarproject.bramble.sync.SyncModule;
import org.briarproject.bramble.sync.validation.ValidationModule;
import org.briarproject.bramble.system.SystemModule;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.bramble.test.TestDatabaseConfigModule;
import org.briarproject.bramble.test.TestPluginConfigModule;
import org.briarproject.bramble.test.TestSecureRandomModule;
import org.briarproject.bramble.transport.TransportModule;
@@ -53,7 +54,7 @@ import dagger.Component;
@Singleton
@Component(modules = {
TestDatabaseModule.class,
TestDatabaseConfigModule.class,
TestPluginConfigModule.class,
TestSecureRandomModule.class,
BlogModule.class,
@@ -63,6 +64,7 @@ import dagger.Component;
CryptoModule.class,
CryptoExecutorModule.class,
DataModule.class,
DatabaseExecutorModule.class,
DatabaseModule.class,
DefaultEventExecutorModule.class,
EventModule.class,
@@ -92,6 +94,8 @@ public interface BriarIntegrationTestComponent {
void inject(CryptoExecutorModule.EagerSingletons init);
void inject(DatabaseExecutorModule.EagerSingletons init);
void inject(ForumModule.EagerSingletons init);
void inject(GroupInvitationModule.EagerSingletons init);