Repository: qpid-jms Updated Branches: refs/heads/master abde5ef20 -> fd0081e2e
Adds an additional test Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/884d6b58 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/884d6b58 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/884d6b58 Branch: refs/heads/master Commit: 884d6b58700a5e1fc93b27cdcfbc07c22cdcdc22 Parents: abde5ef Author: Timothy Bish <tabish...@gmail.com> Authored: Thu Jan 8 17:20:59 2015 -0500 Committer: Timothy Bish <tabish...@gmail.com> Committed: Thu Jan 8 17:20:59 2015 -0500 ---------------------------------------------------------------------- .../jms/test/netty/NettyTcpTransportTest.java | 50 +++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/884d6b58/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java index 84197a4..34999b0 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java @@ -26,11 +26,12 @@ import io.netty.buffer.Unpooled; import java.net.URI; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.qpid.jms.test.QpidJmsTestCase; import org.apache.qpid.jms.test.Wait; -import org.apache.qpid.jms.transports.TransportOptions; import org.apache.qpid.jms.transports.TransportListener; +import org.apache.qpid.jms.transports.TransportOptions; import org.apache.qpid.jms.transports.netty.NettyTcpTransport; import org.junit.Test; import org.slf4j.Logger; @@ -46,6 +47,7 @@ public class NettyTcpTransportTest extends QpidJmsTestCase { private boolean transportClosed; private final List<Throwable> exceptions = new ArrayList<Throwable>(); private final List<ByteBuf> data = new ArrayList<ByteBuf>(); + private final AtomicInteger bytesRead = new AtomicInteger(); private final TransportListener testListener = new NettyTransportListener(); private final TransportOptions testOptions = new TransportOptions(); @@ -161,12 +163,58 @@ public class NettyTcpTransportTest extends QpidJmsTestCase { assertTrue(exceptions.isEmpty()); } + @Test(timeout = 60 * 1000) + public void testMultipleDataPacketsSentAreReceived() throws Exception { + final int SEND_BYTE_COUNT = 1024; + final int SEND_PACKETS_COUNT = 3; + + try (NettyEchoServer server = new NettyEchoServer()) { + server.start(); + + int port = server.getServerPort(); + URI serverLocation = new URI("tcp://localhost:" + port); + + NettyTcpTransport transport = new NettyTcpTransport(testListener, serverLocation, testOptions); + try { + transport.connect(); + LOG.info("Connected to test server."); + } catch (Exception e) { + fail("Should have connected to the server"); + } + + assertTrue(transport.isConnected()); + + ByteBuf sendBuffer = Unpooled.buffer(SEND_BYTE_COUNT); + for (int i = 0; i < SEND_BYTE_COUNT; ++i) { + sendBuffer.writeByte('A'); + } + + for (int i = 0; i < SEND_PACKETS_COUNT; ++i) { + transport.send(sendBuffer.copy()); + } + + assertTrue(Wait.waitFor(new Wait.Condition() { + + @Override + public boolean isSatisified() throws Exception { + return bytesRead.get() != SEND_BYTE_COUNT * SEND_PACKETS_COUNT; + } + })); + + transport.close(); + } + + assertTrue(!transportClosed); // Normal shutdown does not trigger the event. + assertTrue(exceptions.isEmpty()); + } + private class NettyTransportListener implements TransportListener { @Override public void onData(ByteBuf incoming) { LOG.info("Client has new incoming data of size: {}", incoming.readableBytes()); data.add(incoming); + bytesRead.addAndGet(incoming.readableBytes()); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org