From 1e581ffea4791b182c26b22fec970fe740d34ebd Mon Sep 17 00:00:00 2001 From: Oleksandra Matviienko Date: Tue, 30 Apr 2024 18:01:04 +0200 Subject: [PATCH 1/3] JUnit5 migration in netty-mqtt. Junit-platform.properties and logback-test.xml where added to java resource directory. Signed-off-by: Oleksandra Matviienko --- netty-mqtt/pom.xml | 5 ----- .../mqtt/integration/IntegrationTestSuite.java | 5 +++-- .../mqtt/integration/MqttIntegrationTest.java | 16 ++++++++-------- .../src/test/resources/junit-platform.properties | 3 +++ netty-mqtt/src/test/resources/logback-test.xml | 14 ++++++++++++++ 5 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 netty-mqtt/src/test/resources/junit-platform.properties create mode 100644 netty-mqtt/src/test/resources/logback-test.xml diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml index 6834bb1aca..8757f66d00 100644 --- a/netty-mqtt/pom.xml +++ b/netty-mqtt/pom.xml @@ -82,11 +82,6 @@ spring-boot-starter-test test - - org.junit.vintage - junit-vintage-engine - test - org.awaitility awaitility diff --git a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java index 921d50a91e..6673a27e47 100644 --- a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java +++ b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java @@ -16,9 +16,10 @@ package org.thingsboard.mqtt.integration; import org.junit.extensions.cpsuite.ClasspathSuite; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(ClasspathSuite.class) +@ExtendWith(MockitoExtension.class) @ClasspathSuite.ClassnameFilters({ "org.thingsboard.mqtt.integration.*Test", }) diff --git a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java index 04103bf67b..f0c0800c88 100644 --- a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java +++ b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java @@ -23,10 +23,10 @@ import io.netty.handler.codec.mqtt.MqttQoS; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.Promise; import lombok.extern.slf4j.Slf4j; -import org.junit.After; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.thingsboard.common.util.AbstractListeningExecutor; import org.thingsboard.mqtt.MqttClient; import org.thingsboard.mqtt.MqttClientConfig; @@ -53,7 +53,7 @@ public class MqttIntegrationTest { AbstractListeningExecutor handlerExecutor; - @Before + @BeforeEach public void init() throws Exception { this.handlerExecutor = new AbstractListeningExecutor() { @Override @@ -69,7 +69,7 @@ public class MqttIntegrationTest { this.mqttServer.init(); } - @After + @AfterEach public void destroy() throws InterruptedException { if (this.mqttClient != null) { this.mqttClient.disconnect(); @@ -100,7 +100,7 @@ public class MqttIntegrationTest { log.warn("Waiting for messages acknowledgments..."); boolean awaitResult = latch.await(10, TimeUnit.SECONDS); - Assert.assertTrue(awaitResult); + Assertions.assertTrue(awaitResult); log.warn("Messages are delivered successfully..."); //when @@ -111,7 +111,7 @@ public class MqttIntegrationTest { List allReceivedEvents = this.mqttServer.getEventsFromClient(); long disconnectCount = allReceivedEvents.stream().filter(type -> type == MqttMessageType.DISCONNECT).count(); - Assert.assertEquals(1, disconnectCount); + Assertions.assertEquals(1, disconnectCount); } private Future publishMsg() { diff --git a/netty-mqtt/src/test/resources/junit-platform.properties b/netty-mqtt/src/test/resources/junit-platform.properties new file mode 100644 index 0000000000..f2ed301920 --- /dev/null +++ b/netty-mqtt/src/test/resources/junit-platform.properties @@ -0,0 +1,3 @@ +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent +junit.jupiter.execution.parallel.mode.classes.default = concurrent diff --git a/netty-mqtt/src/test/resources/logback-test.xml b/netty-mqtt/src/test/resources/logback-test.xml new file mode 100644 index 0000000000..52f2a77588 --- /dev/null +++ b/netty-mqtt/src/test/resources/logback-test.xml @@ -0,0 +1,14 @@ + + + + + + %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + From f83ffa0990b5ac6957748853bf9c0e320ae64df2 Mon Sep 17 00:00:00 2001 From: Oleksandra Matviienko Date: Tue, 30 Apr 2024 22:02:13 +0200 Subject: [PATCH 2/3] removed unused classpath suite Signed-off-by: Oleksandra Matviienko --- netty-mqtt/pom.xml | 5 ---- .../integration/IntegrationTestSuite.java | 28 ------------------- 2 files changed, 33 deletions(-) delete mode 100644 netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml index 8757f66d00..b0111b9bcd 100644 --- a/netty-mqtt/pom.xml +++ b/netty-mqtt/pom.xml @@ -87,11 +87,6 @@ awaitility test - - io.takari.junit - takari-cpsuite - test - diff --git a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java deleted file mode 100644 index 6673a27e47..0000000000 --- a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/IntegrationTestSuite.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright © 2016-2024 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.mqtt.integration; - -import org.junit.extensions.cpsuite.ClasspathSuite; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.junit.jupiter.MockitoExtension; - -@ExtendWith(MockitoExtension.class) -@ClasspathSuite.ClassnameFilters({ - "org.thingsboard.mqtt.integration.*Test", -}) -public class IntegrationTestSuite { - -} \ No newline at end of file From a1c226ae177a005f44998341eb51e20018c77ce5 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Tue, 30 Apr 2024 22:40:45 +0200 Subject: [PATCH 3/3] @ResourceLock("port8885") added for MQTT test with server on port 8885 --- .../org/thingsboard/mqtt/integration/MqttIntegrationTest.java | 2 ++ .../org/thingsboard/mqtt/integration/server/MqttServer.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java index f0c0800c88..7f71bc58a6 100644 --- a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java +++ b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/MqttIntegrationTest.java @@ -27,6 +27,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.ResourceLock; import org.thingsboard.common.util.AbstractListeningExecutor; import org.thingsboard.mqtt.MqttClient; import org.thingsboard.mqtt.MqttClientConfig; @@ -39,6 +40,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +@ResourceLock("port8885") // test MQTT server port @Slf4j public class MqttIntegrationTest { diff --git a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/server/MqttServer.java b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/server/MqttServer.java index 40663165e6..6bbdace643 100644 --- a/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/server/MqttServer.java +++ b/netty-mqtt/src/test/java/org/thingsboard/mqtt/integration/server/MqttServer.java @@ -46,7 +46,7 @@ public class MqttServer { private EventLoopGroup workerGroup; public void init() throws Exception { - log.info("Starting MQTT server..."); + log.info("Starting MQTT server on port {}...", mqttPort); bossGroup = new NioEventLoopGroup(); workerGroup = new NioEventLoopGroup(); ServerBootstrap b = new ServerBootstrap();