mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 10:49:06 +01:00
Add test implementation of DuplexTransportConnection.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package org.briarproject.bramble.test;
|
||||
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
||||
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
||||
import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PipedInputStream;
|
||||
import java.io.PipedOutputStream;
|
||||
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
|
||||
@ThreadSafe
|
||||
@NotNullByDefault
|
||||
public class TestDuplexTransportConnection
|
||||
implements DuplexTransportConnection {
|
||||
|
||||
private final TransportConnectionReader reader;
|
||||
private final TransportConnectionWriter writer;
|
||||
|
||||
public TestDuplexTransportConnection(InputStream in, OutputStream out) {
|
||||
reader = new TestTransportConnectionReader(in);
|
||||
writer = new TestTransportConnectionWriter(out);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TransportConnectionReader getReader() {
|
||||
return reader;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TransportConnectionWriter getWriter() {
|
||||
return writer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and returns a pair of TestDuplexTransportConnections that are
|
||||
* connected to each other.
|
||||
*/
|
||||
public static TestDuplexTransportConnection[] createPair()
|
||||
throws IOException {
|
||||
PipedInputStream aliceIn = new PipedInputStream();
|
||||
PipedInputStream bobIn = new PipedInputStream();
|
||||
PipedOutputStream aliceOut = new PipedOutputStream(bobIn);
|
||||
PipedOutputStream bobOut = new PipedOutputStream(aliceIn);
|
||||
TestDuplexTransportConnection alice =
|
||||
new TestDuplexTransportConnection(aliceIn, aliceOut);
|
||||
TestDuplexTransportConnection bob =
|
||||
new TestDuplexTransportConnection(bobIn, bobOut);
|
||||
return new TestDuplexTransportConnection[] {alice, bob};
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package org.briarproject.bramble.test;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
@@ -24,6 +25,8 @@ public class TestTransportConnectionReader
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(boolean exception, boolean recognised) {
|
||||
public void dispose(boolean exception, boolean recognised)
|
||||
throws IOException {
|
||||
in.close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.briarproject.bramble.test;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
@@ -10,7 +11,8 @@ import javax.annotation.concurrent.ThreadSafe;
|
||||
|
||||
@ThreadSafe
|
||||
@NotNullByDefault
|
||||
public class TestTransportConnectionWriter implements TransportConnectionWriter {
|
||||
public class TestTransportConnectionWriter
|
||||
implements TransportConnectionWriter {
|
||||
|
||||
private final OutputStream out;
|
||||
private final CountDownLatch disposed = new CountDownLatch(1);
|
||||
@@ -39,7 +41,8 @@ public class TestTransportConnectionWriter implements TransportConnectionWriter
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(boolean exception) {
|
||||
public void dispose(boolean exception) throws IOException {
|
||||
disposed.countDown();
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user