You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2012/10/24 15:13:57 UTC

svn commit: r1401666 - /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java

Author: tabish
Date: Wed Oct 24 13:13:57 2012
New Revision: 1401666

URL: http://svn.apache.org/viewvc?rev=1401666&view=rev
Log:
update for: https://issues.apache.org/jira/browse/AMQ-4123

make the test use the Wait condition instead of hard sleeps

Modified:
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java?rev=1401666&r1=1401665&r2=1401666&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/mqtt/MQTTTest.java Wed Oct 24 13:13:57 2012
@@ -16,6 +16,12 @@
  */
 package org.apache.activemq.transport.mqtt;
 
+import static org.fusesource.hawtbuf.UTF8Buffer.utf8;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -39,6 +45,7 @@ import org.apache.activemq.transport.Tra
 import org.apache.activemq.transport.TransportListener;
 import org.apache.activemq.transport.tcp.TcpTransport;
 import org.apache.activemq.util.ByteSequence;
+import org.apache.activemq.util.Wait;
 import org.fusesource.hawtbuf.UTF8Buffer;
 import org.fusesource.mqtt.client.BlockingConnection;
 import org.fusesource.mqtt.client.MQTT;
@@ -51,8 +58,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import static org.fusesource.hawtbuf.UTF8Buffer.utf8;
-import static org.junit.Assert.*;
 
 
 public class MQTTTest {
@@ -296,7 +301,7 @@ public class MQTTTest {
 
         addMQTTConnector(brokerService);
         brokerService.start();
-        TransportConnector mqttConnector = brokerService.getTransportConnectorByScheme("mqtt");
+        final TransportConnector mqttConnector = brokerService.getTransportConnectorByScheme("mqtt");
 
         // manually need to create the client so we don't send keep alive (PINGREQ) frames to keep the conn
         // from timing out
@@ -306,19 +311,28 @@ public class MQTTTest {
         clientTransport.oneway(connectFrame.encode());
 
         // wait for broker to register the MQTT connection
-        TimeUnit.SECONDS.sleep(1);
-        assertTrue(mqttConnector.getConnections().size() > 0);
+        assertTrue("MQTT Connection should be registered.", Wait.waitFor(new Wait.Condition() {
+
+            @Override
+            public boolean isSatisified() throws Exception {
+                return mqttConnector.getConnections().size() > 0;
+            }
+        }));
+
+        // wait for broker to time out the MQTT connection due to inactivity
+        assertTrue("MQTT Connection should be timed out.", Wait.waitFor(new Wait.Condition() {
+
+            @Override
+            public boolean isSatisified() throws Exception {
+                return mqttConnector.getConnections().size() == 0;
+            }
+        }));
 
-        // wait for the inactivity monitor to remove the connection due to inactivity
-        TimeUnit.SECONDS.sleep(10);
-        assertTrue(mqttConnector.getConnections().size() == 0);
         assertTrue("Should have seen client transport exception", exceptions.size() > 0);
 
         clientTransport.stop();
-
     }
 
-
     private Transport createManualMQTTClient() throws IOException, URISyntaxException {
         Transport clientTransport = new TcpTransport(new MQTTWireFormat(), SocketFactory.getDefault(),
                 new URI("tcp://localhost:1883"), null);
@@ -352,9 +366,13 @@ public class MQTTTest {
         final BlockingConnection connection = mqtt.blockingConnection();
         connection.connect();
 
-        TimeUnit.SECONDS.sleep(10);
+        assertTrue("KeepAlive didn't work properly", Wait.waitFor(new Wait.Condition() {
 
-        assertTrue("KeepAlive didn't work properly", connection.isConnected());
+            @Override
+            public boolean isSatisified() throws Exception {
+                return connection.isConnected();
+            }
+        }));
 
         connection.disconnect();
     }
@@ -368,10 +386,13 @@ public class MQTTTest {
         final BlockingConnection connection = mqtt.blockingConnection();
         connection.connect();
 
-        TimeUnit.SECONDS.sleep(10);
-
+        assertTrue("KeepAlive didn't work properly", Wait.waitFor(new Wait.Condition() {
 
-        assertTrue("KeepAlive didn't work properly", connection.isConnected());
+            @Override
+            public boolean isSatisified() throws Exception {
+                return connection.isConnected();
+            }
+        }));
 
         connection.disconnect();
     }
@@ -385,9 +406,13 @@ public class MQTTTest {
         final BlockingConnection connection = mqtt.blockingConnection();
         connection.connect();
 
-        TimeUnit.SECONDS.sleep(10);
+        assertTrue("KeepAlive didn't work properly", Wait.waitFor(new Wait.Condition() {
 
-        assertTrue("KeepAlive didn't work properly", connection.isConnected());
+            @Override
+            public boolean isSatisified() throws Exception {
+                return connection.isConnected();
+            }
+        }));
 
         connection.disconnect();
     }
@@ -402,13 +427,15 @@ public class MQTTTest {
         final BlockingConnection connection = mqtt.blockingConnection();
         connection.connect();
 
-        TimeUnit.SECONDS.sleep(10);
-
-        assertFalse("KeepAlive didn't work properly", connection.isConnected());
+        assertTrue("KeepAlive didn't work properly", Wait.waitFor(new Wait.Condition() {
 
+            @Override
+            public boolean isSatisified() throws Exception {
+                return connection.isConnected();
+            }
+        }));
     }
 
-
     protected void addMQTTConnector(BrokerService brokerService) throws Exception {
         brokerService.addConnector("mqtt://localhost:1883");
     }
@@ -425,6 +452,4 @@ public class MQTTTest {
         mqtt.setReconnectAttemptsMax(0);
         return mqtt;
     }
-
-
 }
\ No newline at end of file