Add test implementation of DuplexTransportConnection.

This commit is contained in:
akwizgran
2019-05-31 17:48:45 +01:00
parent 85a1fd2caa
commit 7c3f2c0bed
3 changed files with 64 additions and 3 deletions

View File

@@ -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};
}
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}