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

Reply via email to