mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-21 07:09:56 +01:00
Shutdown manager (untested on Windows).
This commit is contained in:
@@ -17,6 +17,7 @@ import net.sf.briar.api.crypto.CryptoComponent;
|
||||
import net.sf.briar.api.crypto.ErasableKey;
|
||||
import net.sf.briar.api.db.DatabaseComponent;
|
||||
import net.sf.briar.api.db.DbException;
|
||||
import net.sf.briar.api.lifecycle.ShutdownManager;
|
||||
import net.sf.briar.api.protocol.Transport;
|
||||
import net.sf.briar.api.protocol.TransportId;
|
||||
import net.sf.briar.api.protocol.TransportIndex;
|
||||
@@ -65,9 +66,11 @@ public class ConnectionRecogniserImplTest extends TestCase {
|
||||
public void testUnexpectedIv() throws Exception {
|
||||
Mockery context = new Mockery();
|
||||
final DatabaseComponent db = context.mock(DatabaseComponent.class);
|
||||
final ShutdownManager shutdown = context.mock(ShutdownManager.class);
|
||||
context.checking(new Expectations() {{
|
||||
oneOf(db).addListener(with(any(ConnectionRecogniserImpl.class)));
|
||||
// Initialise
|
||||
oneOf(shutdown).addShutdownHook(with(any(Runnable.class)));
|
||||
oneOf(db).getLocalTransports();
|
||||
will(returnValue(transports));
|
||||
oneOf(db).getContacts();
|
||||
@@ -77,8 +80,9 @@ public class ConnectionRecogniserImplTest extends TestCase {
|
||||
oneOf(db).getConnectionWindow(contactId, remoteIndex);
|
||||
will(returnValue(connectionWindow));
|
||||
}});
|
||||
Executor e = new ImmediateExecutor();
|
||||
ConnectionRecogniser c = new ConnectionRecogniserImpl(crypto, db, e);
|
||||
Executor executor = new ImmediateExecutor();
|
||||
ConnectionRecogniser c = new ConnectionRecogniserImpl(crypto, db,
|
||||
executor, shutdown);
|
||||
c.acceptConnection(transportId, new byte[IV_LENGTH], new Callback() {
|
||||
|
||||
public void connectionAccepted(ConnectionContext ctx) {
|
||||
@@ -112,9 +116,11 @@ public class ConnectionRecogniserImplTest extends TestCase {
|
||||
|
||||
Mockery context = new Mockery();
|
||||
final DatabaseComponent db = context.mock(DatabaseComponent.class);
|
||||
final ShutdownManager shutdown = context.mock(ShutdownManager.class);
|
||||
context.checking(new Expectations() {{
|
||||
oneOf(db).addListener(with(any(ConnectionRecogniserImpl.class)));
|
||||
// Initialise
|
||||
oneOf(shutdown).addShutdownHook(with(any(Runnable.class)));
|
||||
oneOf(db).getLocalTransports();
|
||||
will(returnValue(transports));
|
||||
oneOf(db).getContacts();
|
||||
@@ -127,8 +133,9 @@ public class ConnectionRecogniserImplTest extends TestCase {
|
||||
oneOf(db).setConnectionWindow(contactId, remoteIndex,
|
||||
connectionWindow);
|
||||
}});
|
||||
Executor e = new ImmediateExecutor();
|
||||
ConnectionRecogniser c = new ConnectionRecogniserImpl(crypto, db, e);
|
||||
Executor executor = new ImmediateExecutor();
|
||||
ConnectionRecogniser c = new ConnectionRecogniserImpl(crypto, db,
|
||||
executor, shutdown);
|
||||
// The IV should not be expected by the wrong transport
|
||||
TransportId wrong = new TransportId(TestUtils.getRandomId());
|
||||
c.acceptConnection(wrong, encryptedIv, new Callback() {
|
||||
|
||||
@@ -18,6 +18,7 @@ import net.sf.briar.api.transport.ConnectionWriter;
|
||||
import net.sf.briar.api.transport.ConnectionWriterFactory;
|
||||
import net.sf.briar.crypto.CryptoModule;
|
||||
import net.sf.briar.db.DatabaseModule;
|
||||
import net.sf.briar.lifecycle.LifecycleModule;
|
||||
import net.sf.briar.protocol.ProtocolModule;
|
||||
import net.sf.briar.protocol.writers.ProtocolWritersModule;
|
||||
import net.sf.briar.serial.SerialModule;
|
||||
@@ -50,10 +51,11 @@ public class ConnectionWriterTest extends TestCase {
|
||||
}
|
||||
};
|
||||
Injector i = Guice.createInjector(testModule, new CryptoModule(),
|
||||
new DatabaseModule(), new ProtocolModule(),
|
||||
new ProtocolWritersModule(), new SerialModule(),
|
||||
new TestDatabaseModule(), new TransportBatchModule(),
|
||||
new TransportModule(), new TransportStreamModule());
|
||||
new DatabaseModule(), new LifecycleModule(),
|
||||
new ProtocolModule(), new ProtocolWritersModule(),
|
||||
new SerialModule(), new TestDatabaseModule(),
|
||||
new TransportBatchModule(), new TransportModule(),
|
||||
new TransportStreamModule());
|
||||
connectionContextFactory =
|
||||
i.getInstance(ConnectionContextFactory.class);
|
||||
connectionWriterFactory = i.getInstance(ConnectionWriterFactory.class);
|
||||
|
||||
@@ -40,6 +40,7 @@ import net.sf.briar.api.transport.ConnectionRecogniser.Callback;
|
||||
import net.sf.briar.api.transport.ConnectionWriterFactory;
|
||||
import net.sf.briar.crypto.CryptoModule;
|
||||
import net.sf.briar.db.DatabaseModule;
|
||||
import net.sf.briar.lifecycle.LifecycleModule;
|
||||
import net.sf.briar.protocol.ProtocolModule;
|
||||
import net.sf.briar.protocol.writers.ProtocolWritersModule;
|
||||
import net.sf.briar.serial.SerialModule;
|
||||
@@ -81,32 +82,24 @@ public class BatchConnectionReadWriteTest extends TestCase {
|
||||
@Before
|
||||
public void setUp() {
|
||||
testDir.mkdirs();
|
||||
// Create Alice's injector
|
||||
Module aliceTestModule = new AbstractModule() {
|
||||
alice = createInjector(aliceDir);
|
||||
bob = createInjector(bobDir);
|
||||
}
|
||||
|
||||
private Injector createInjector(File dir) {
|
||||
Module testModule = new AbstractModule() {
|
||||
@Override
|
||||
public void configure() {
|
||||
bind(Executor.class).toInstance(
|
||||
new ScheduledThreadPoolExecutor(5));
|
||||
}
|
||||
};
|
||||
alice = Guice.createInjector(aliceTestModule, new CryptoModule(),
|
||||
new DatabaseModule(), new ProtocolModule(),
|
||||
new ProtocolWritersModule(), new SerialModule(),
|
||||
new TestDatabaseModule(aliceDir), new TransportBatchModule(),
|
||||
new TransportModule(), new TransportStreamModule());
|
||||
// Create Bob's injector
|
||||
Module bobTestModule = new AbstractModule() {
|
||||
@Override
|
||||
public void configure() {
|
||||
bind(Executor.class).toInstance(
|
||||
new ScheduledThreadPoolExecutor(5));
|
||||
}
|
||||
};
|
||||
bob = Guice.createInjector(bobTestModule, new CryptoModule(),
|
||||
new DatabaseModule(), new ProtocolModule(),
|
||||
new ProtocolWritersModule(), new SerialModule(),
|
||||
new TestDatabaseModule(bobDir), new TransportBatchModule(),
|
||||
new TransportModule(), new TransportStreamModule());
|
||||
return Guice.createInjector(testModule, new CryptoModule(),
|
||||
new DatabaseModule(), new LifecycleModule(),
|
||||
new ProtocolModule(), new ProtocolWritersModule(),
|
||||
new SerialModule(), new TestDatabaseModule(dir),
|
||||
new TransportBatchModule(), new TransportModule(),
|
||||
new TransportStreamModule());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user