mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 05:09:53 +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.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
import javax.annotation.concurrent.ThreadSafe;
|
||||||
@@ -24,6 +25,8 @@ public class TestTransportConnectionReader
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
@@ -10,7 +11,8 @@ import javax.annotation.concurrent.ThreadSafe;
|
|||||||
|
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
public class TestTransportConnectionWriter implements TransportConnectionWriter {
|
public class TestTransportConnectionWriter
|
||||||
|
implements TransportConnectionWriter {
|
||||||
|
|
||||||
private final OutputStream out;
|
private final OutputStream out;
|
||||||
private final CountDownLatch disposed = new CountDownLatch(1);
|
private final CountDownLatch disposed = new CountDownLatch(1);
|
||||||
@@ -39,7 +41,8 @@ public class TestTransportConnectionWriter implements TransportConnectionWriter
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispose(boolean exception) {
|
public void dispose(boolean exception) throws IOException {
|
||||||
disposed.countDown();
|
disposed.countDown();
|
||||||
|
out.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user