Wrapped System.currentTimeMillis() and Thread.sleep() for testability.

This commit is contained in:
akwizgran
2012-12-15 04:58:35 +00:00
parent 61e59f816d
commit 3e2e7286fe
26 changed files with 146 additions and 77 deletions

View File

@@ -9,8 +9,8 @@ import java.util.concurrent.Executors;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.TransportConfig;
import net.sf.briar.api.TransportProperties;
import net.sf.briar.api.clock.SystemClock;
import net.sf.briar.plugins.DuplexClientTest;
import net.sf.briar.plugins.tcp.LanTcpPlugin;
// This is not a JUnit test - it has to be run manually while the server test
// is running on another machine
@@ -27,7 +27,7 @@ public class LanTcpClientTest extends DuplexClientTest {
// Create the plugin
callback = new ClientCallback(new TransportConfig(),
new TransportProperties(), remote);
plugin = new LanTcpPlugin(executor, callback, 0L);
plugin = new LanTcpPlugin(executor, new SystemClock(), callback, 0L);
}
public static void main(String[] args) throws Exception {

View File

@@ -17,10 +17,11 @@ import net.sf.briar.BriarTestCase;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.TransportConfig;
import net.sf.briar.api.TransportProperties;
import net.sf.briar.api.clock.Clock;
import net.sf.briar.api.clock.SystemClock;
import net.sf.briar.api.plugins.duplex.DuplexPlugin;
import net.sf.briar.api.plugins.duplex.DuplexPluginCallback;
import net.sf.briar.api.plugins.duplex.DuplexTransportConnection;
import net.sf.briar.plugins.tcp.LanTcpPlugin;
import org.junit.Test;
@@ -33,8 +34,9 @@ public class LanTcpPluginTest extends BriarTestCase {
Callback callback = new Callback();
callback.local.put("address", "127.0.0.1");
callback.local.put("port", "0");
Executor e = Executors.newCachedThreadPool();
DuplexPlugin plugin = new LanTcpPlugin(e, callback, 0L);
Executor executor = Executors.newCachedThreadPool();
Clock clock = new SystemClock();
DuplexPlugin plugin = new LanTcpPlugin(executor, clock, callback, 0L);
plugin.start();
// The plugin should have bound a socket and stored the port number
assertTrue(callback.propertiesLatch.await(5, SECONDS));
@@ -58,8 +60,9 @@ public class LanTcpPluginTest extends BriarTestCase {
@Test
public void testOutgoingConnection() throws Exception {
Callback callback = new Callback();
Executor e = Executors.newCachedThreadPool();
DuplexPlugin plugin = new LanTcpPlugin(e, callback, 0L);
Executor executor = Executors.newCachedThreadPool();
Clock clock = new SystemClock();
DuplexPlugin plugin = new LanTcpPlugin(executor, clock, callback, 0L);
plugin.start();
// Listen on a local port
final ServerSocket ss = new ServerSocket();

View File

@@ -7,8 +7,8 @@ import java.util.concurrent.Executors;
import net.sf.briar.api.TransportConfig;
import net.sf.briar.api.TransportProperties;
import net.sf.briar.api.clock.SystemClock;
import net.sf.briar.plugins.DuplexServerTest;
import net.sf.briar.plugins.tcp.LanTcpPlugin;
// This is not a JUnit test - it has to be run manually while the client test
// is running on another machine
@@ -18,7 +18,7 @@ public class LanTcpServerTest extends DuplexServerTest {
callback = new ServerCallback(new TransportConfig(),
new TransportProperties(),
Collections.singletonMap(contactId, new TransportProperties()));
plugin = new LanTcpPlugin(executor, callback, 0L);
plugin = new LanTcpPlugin(executor, new SystemClock(), callback, 0L);
}
public static void main(String[] args) throws Exception {

View File

@@ -38,6 +38,7 @@ import net.sf.briar.api.protocol.Transport;
import net.sf.briar.api.protocol.TransportId;
import net.sf.briar.api.protocol.TransportUpdate;
import net.sf.briar.api.protocol.UniqueId;
import net.sf.briar.clock.ClockModule;
import net.sf.briar.crypto.CryptoModule;
import net.sf.briar.serial.SerialModule;
@@ -57,7 +58,7 @@ public class ConstantsTest extends BriarTestCase {
public ConstantsTest() throws Exception {
super();
Injector i = Guice.createInjector(new CryptoModule(),
Injector i = Guice.createInjector(new ClockModule(), new CryptoModule(),
new ProtocolModule(), new SerialModule());
crypto = i.getInstance(CryptoComponent.class);
groupFactory = i.getInstance(GroupFactory.class);

View File

@@ -29,6 +29,7 @@ import net.sf.briar.api.protocol.SubscriptionUpdate;
import net.sf.briar.api.protocol.Transport;
import net.sf.briar.api.protocol.TransportId;
import net.sf.briar.api.protocol.TransportUpdate;
import net.sf.briar.clock.ClockModule;
import net.sf.briar.crypto.CryptoModule;
import net.sf.briar.serial.SerialModule;
@@ -54,7 +55,7 @@ public class ProtocolIntegrationTest extends BriarTestCase {
public ProtocolIntegrationTest() throws Exception {
super();
Injector i = Guice.createInjector(new CryptoModule(),
Injector i = Guice.createInjector(new ClockModule(), new CryptoModule(),
new ProtocolModule(), new SerialModule());
readerFactory = i.getInstance(ProtocolReaderFactory.class);
writerFactory = i.getInstance(ProtocolWriterFactory.class);

View File

@@ -10,6 +10,7 @@ import net.sf.briar.api.protocol.ProtocolWriter;
import net.sf.briar.api.protocol.Request;
import net.sf.briar.api.serial.SerialComponent;
import net.sf.briar.api.serial.WriterFactory;
import net.sf.briar.clock.ClockModule;
import net.sf.briar.crypto.CryptoModule;
import net.sf.briar.serial.SerialModule;
import net.sf.briar.util.StringUtils;
@@ -29,7 +30,7 @@ public class ProtocolWriterImplTest extends BriarTestCase {
public ProtocolWriterImplTest() {
super();
Injector i = Guice.createInjector(new CryptoModule(),
Injector i = Guice.createInjector(new ClockModule(), new CryptoModule(),
new ProtocolModule(), new SerialModule());
packetFactory = i.getInstance(PacketFactory.class);
serial = i.getInstance(SerialComponent.class);

View File

@@ -15,6 +15,7 @@ import net.sf.briar.api.serial.Reader;
import net.sf.briar.api.serial.ReaderFactory;
import net.sf.briar.api.serial.Writer;
import net.sf.briar.api.serial.WriterFactory;
import net.sf.briar.clock.ClockModule;
import net.sf.briar.crypto.CryptoModule;
import net.sf.briar.serial.SerialModule;
@@ -36,7 +37,7 @@ public class RequestReaderTest extends BriarTestCase {
public RequestReaderTest() throws Exception {
super();
Injector i = Guice.createInjector(new CryptoModule(),
Injector i = Guice.createInjector(new ClockModule(), new CryptoModule(),
new ProtocolModule(), new SerialModule());
readerFactory = i.getInstance(ReaderFactory.class);
writerFactory = i.getInstance(WriterFactory.class);