]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mqtt] Try to make tests more stable (#9297)
authorFabian Wolter <github@fabian-wolter.de>
Wed, 9 Dec 2020 12:21:58 +0000 (13:21 +0100)
committerGitHub <noreply@github.com>
Wed, 9 Dec 2020 12:21:58 +0000 (13:21 +0100)
* [mqtt] Try to make tests more stable
* Increase timeout from 10ms to 10sec

Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/handler/BrokerHandlerTest.java

index 6498ccf54189ca2fc25ce3c4e727b9d2f97b5fc1..3412e1beec78528c010d5f5f5518c53d778abacf 100644 (file)
@@ -35,6 +35,7 @@ import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
 import org.openhab.core.io.transport.mqtt.MqttConnectionState;
 import org.openhab.core.io.transport.mqtt.MqttException;
 import org.openhab.core.io.transport.mqtt.MqttService;
+import org.openhab.core.test.java.JavaTest;
 import org.openhab.core.thing.Bridge;
 import org.openhab.core.thing.ThingStatus;
 import org.openhab.core.thing.ThingStatusInfo;
@@ -48,7 +49,7 @@ import org.osgi.service.cm.ConfigurationException;
  */
 @ExtendWith(MockitoExtension.class)
 @MockitoSettings(strictness = Strictness.WARN)
-public class BrokerHandlerTest {
+public class BrokerHandlerTest extends JavaTest {
     private ScheduledExecutorService scheduler;
 
     private @Mock ThingHandlerCallback callback;
@@ -60,10 +61,10 @@ public class BrokerHandlerTest {
     private BrokerHandler handler;
 
     @BeforeEach
-    public void setUp() throws ConfigurationException, MqttException {
+    public void setUp() {
         scheduler = new ScheduledThreadPoolExecutor(1);
         connection = spy(new MqttBrokerConnectionEx("10.10.0.10", 80, false, "BrokerHandlerTest"));
-        connection.setTimeoutExecutor(scheduler, 10);
+        connection.setTimeoutExecutor(scheduler, 10000);
         connection.setConnectionCallback(connection);
 
         Configuration config = new Configuration();
@@ -79,8 +80,7 @@ public class BrokerHandlerTest {
     }
 
     @Test
-    public void handlerInitWithoutUrl()
-            throws InterruptedException, IllegalArgumentException, MqttException, ConfigurationException {
+    public void handlerInitWithoutUrl() throws IllegalArgumentException {
         // Assume it is a real handler and not a mock as defined above
         handler = new BrokerHandler(thing);
         assertThrows(IllegalArgumentException.class, () -> initializeHandlerWaitForTimeout());
@@ -97,8 +97,7 @@ public class BrokerHandlerTest {
     }
 
     @Test
-    public void handlerInit()
-            throws InterruptedException, IllegalArgumentException, MqttException, ConfigurationException {
+    public void handlerInit() throws InterruptedException, IllegalArgumentException {
         assertThat(initializeHandlerWaitForTimeout(), is(true));
 
         ArgumentCaptor<ThingStatusInfo> statusInfoCaptor = ArgumentCaptor.forClass(ThingStatusInfo.class);
@@ -116,8 +115,7 @@ public class BrokerHandlerTest {
      * @throws MqttException
      * @throws ConfigurationException
      */
-    boolean initializeHandlerWaitForTimeout()
-            throws InterruptedException, IllegalArgumentException, MqttException, ConfigurationException {
+    boolean initializeHandlerWaitForTimeout() throws InterruptedException, IllegalArgumentException {
         MqttBrokerConnection c = connection;
 
         MqttConnectionObserverEx o = new MqttConnectionObserverEx();
@@ -125,13 +123,13 @@ public class BrokerHandlerTest {
 
         assertThat(connection.connectionState(), is(MqttConnectionState.DISCONNECTED));
         handler.initialize();
-        verify(connection, times(2)).addConnectionObserver(any());
-        verify(connection, times(1)).start();
+        waitForAssert(() -> verify(connection, times(2)).addConnectionObserver(any()));
+        waitForAssert(() -> verify(connection, times(1)).start());
         // First we expect a CONNECTING state and then a CONNECTED unique state change
-        assertThat(o.counter, is(2));
+        waitForAssert(() -> assertThat(o.counter, is(2)));
         // First we expect a CONNECTING state and then a CONNECTED state change
         // (and other CONNECTED after the future completes)
-        verify(handler, times(3)).connectionStateChanged(any(), any());
+        waitForAssert(() -> verify(handler, times(3)).connectionStateChanged(any(), any()));
         return true;
     }
 }