Test stream reading and writing at a higher level.

This commit is contained in:
akwizgran
2019-05-31 16:56:03 +01:00
parent 5860c723de
commit f8d240a320
6 changed files with 126 additions and 74 deletions

View File

@@ -4,6 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.PluginCallback;
import org.briarproject.bramble.api.plugin.PluginConfig;
import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.bramble.api.plugin.duplex.DuplexPlugin;
import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory;
import org.briarproject.bramble.api.plugin.simplex.SimplexPlugin;
import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory;
@@ -15,22 +16,22 @@ import javax.annotation.Nullable;
import dagger.Module;
import dagger.Provides;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static org.briarproject.bramble.test.TestUtils.getTransportId;
@Module
public class TestPluginConfigModule {
public static final TransportId TRANSPORT_ID = getTransportId();
public static final int MAX_LATENCY = 2 * 60 * 1000; // 2 minutes
public static final TransportId SIMPLEX_TRANSPORT_ID = getTransportId();
public static final TransportId DUPLEX_TRANSPORT_ID = getTransportId();
public static final int MAX_LATENCY = 30_000; // 30 seconds
@NotNullByDefault
private final SimplexPluginFactory simplex = new SimplexPluginFactory() {
@Override
public TransportId getId() {
return TRANSPORT_ID;
return SIMPLEX_TRANSPORT_ID;
}
@Override
@@ -45,6 +46,26 @@ public class TestPluginConfigModule {
}
};
@NotNullByDefault
private final DuplexPluginFactory duplex = new DuplexPluginFactory() {
@Override
public TransportId getId() {
return DUPLEX_TRANSPORT_ID;
}
@Override
public int getMaxLatency() {
return MAX_LATENCY;
}
@Nullable
@Override
public DuplexPlugin createPlugin(PluginCallback callback) {
return null;
}
};
@Provides
PluginConfig providePluginConfig() {
@NotNullByDefault
@@ -52,7 +73,7 @@ public class TestPluginConfigModule {
@Override
public Collection<DuplexPluginFactory> getDuplexFactories() {
return emptyList();
return singletonList(duplex);
}
@Override

View File

@@ -0,0 +1,29 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
import java.io.InputStream;
import javax.annotation.concurrent.ThreadSafe;
@ThreadSafe
@NotNullByDefault
public class TestTransportConnectionReader
implements TransportConnectionReader {
private final InputStream in;
public TestTransportConnectionReader(InputStream in) {
this.in = in;
}
@Override
public InputStream getInputStream() {
return in;
}
@Override
public void dispose(boolean exception, boolean recognised) {
}
}

View File

@@ -0,0 +1,45 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
import java.io.OutputStream;
import java.util.concurrent.CountDownLatch;
import javax.annotation.concurrent.ThreadSafe;
@ThreadSafe
@NotNullByDefault
public class TestTransportConnectionWriter implements TransportConnectionWriter {
private final OutputStream out;
private final CountDownLatch disposed = new CountDownLatch(1);
public TestTransportConnectionWriter(OutputStream out) {
this.out = out;
}
public CountDownLatch getDisposedLatch() {
return disposed;
}
@Override
public int getMaxLatency() {
return 30_000;
}
@Override
public int getMaxIdleTime() {
return 60_000;
}
@Override
public OutputStream getOutputStream() {
return out;
}
@Override
public void dispose(boolean exception) {
disposed.countDown();
}
}