From 7c3f2c0beda3eb508942f3bcc91a863c30e8df8f Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 31 May 2019 17:48:45 +0100 Subject: [PATCH] Add test implementation of DuplexTransportConnection. --- .../test/TestDuplexTransportConnection.java | 55 +++++++++++++++++++ .../test/TestTransportConnectionReader.java | 5 +- .../test/TestTransportConnectionWriter.java | 7 ++- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 bramble-core/src/test/java/org/briarproject/bramble/test/TestDuplexTransportConnection.java diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/TestDuplexTransportConnection.java b/bramble-core/src/test/java/org/briarproject/bramble/test/TestDuplexTransportConnection.java new file mode 100644 index 000000000..6457f8191 --- /dev/null +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/TestDuplexTransportConnection.java @@ -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}; + } +} diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionReader.java b/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionReader.java index bc8c3a122..866813b8d 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionReader.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionReader.java @@ -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(); } } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionWriter.java b/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionWriter.java index 770290ab8..238208207 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionWriter.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/TestTransportConnectionWriter.java @@ -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(); } }