diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttCodecTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttCodecTest.java index d72e21a921..e51300e6ba 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttCodecTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttCodecTest.java @@ -26,16 +26,16 @@ import io.netty.handler.codec.EncoderException; import io.netty.util.Attribute; import io.netty.util.CharsetUtil; import io.netty.util.ReferenceCountUtil; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.function.Executable; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.util.ArrayList; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -45,8 +45,21 @@ import static io.netty.handler.codec.mqtt.MqttTestUtils.validateUnsubscribePaylo import static io.netty.handler.codec.mqtt.MqttProperties.MqttPropertyType.*; import static io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE; import static io.netty.handler.codec.mqtt.MqttSubscriptionOption.RetainedHandlingPolicy.SEND_AT_SUBSCRIBE_IF_NOT_YET_EXISTS; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.hamcrest.CoreMatchers.not; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.clearInvocations; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.CoreMatchers.instanceOf; /** * Unit tests for MqttEncoder and MqttDecoder. @@ -83,7 +96,7 @@ public class MqttCodecTest { */ private final MqttDecoder mqttDecoderLimitedMessageSize = new MqttDecoder(1); - @Before + @BeforeEach public void setup() { MockitoAnnotations.initMocks(this); when(ctx.channel()).thenReturn(channel); @@ -98,7 +111,7 @@ public class MqttCodecTest { when(channel.attr(MqttCodecUtil.MQTT_VERSION_KEY)).thenReturn(versionAttrMock); } - @After + @AfterEach public void after() { for (Object o : out) { ReferenceCountUtil.release(o); @@ -113,7 +126,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttConnectMessage decodedMessage = (MqttConnectMessage) out.get(0); @@ -129,7 +142,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttConnectMessage decodedMessage = (MqttConnectMessage) out.get(0); @@ -147,12 +160,12 @@ public class MqttCodecTest { byteBuf.setByte(9, byteBuf.getByte(9) | 0x1); mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); assertTrue(decodedMessage.decoderResult().isFailure()); Throwable cause = decodedMessage.decoderResult().cause(); - assertTrue(cause instanceof DecoderException); + assertThat(cause, instanceOf(DecoderException.class)); assertEquals("non-zero reserved flag", cause.getMessage()); } @@ -223,12 +236,10 @@ public class MqttCodecTest { } private void checkForSingleDecoderException(final List out) { - assertEquals("Expected one object but got " + out.size(), 1, out.size()); - assertFalse("Message should not be an MqttConnectMessage", - MqttConnectMessage.class.isAssignableFrom(out.get(0).getClass())); + assertEquals(1, out.size()); + assertThat(out.get(0), not(instanceOf(MqttConnectMessage.class))); MqttMessage result = (MqttMessage) out.get(0); - assertTrue("Decoding should have resulted in a DecoderException", - result.decoderResult().cause() instanceof DecoderException); + assertThat(result.decoderResult().cause(), instanceOf(DecoderException.class)); } @Test @@ -240,11 +251,12 @@ public class MqttCodecTest { MqttProperties.NO_PROPERTIES, MqttProperties.NO_PROPERTIES); - try { - ByteBuf byteBuf = MqttEncoder.doEncode(ctx, message); - } catch (Exception cause) { - assertTrue(cause instanceof EncoderException); - } + assertThrows(EncoderException.class, new Executable() { + @Override + public void execute() { + MqttEncoder.doEncode(ctx, message); + } + }); } @Test @@ -254,7 +266,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttConnAckMessage decodedMessage = (MqttConnAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -268,7 +280,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttPublishMessage decodedMessage = (MqttPublishMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -303,7 +315,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttSubscribeMessage decodedMessage = (MqttSubscribeMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -318,7 +330,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttSubAckMessage decodedMessage = (MqttSubAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -339,7 +351,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); MqttSubAckMessage decodedMessage = (MqttSubAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -356,7 +368,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttUnsubscribeMessage decodedMessage = (MqttUnsubscribeMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -395,12 +407,12 @@ public class MqttCodecTest { byteBuf.setByte(0, 0xF0); mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); assertTrue(decodedMessage.decoderResult().isFailure()); Throwable cause = decodedMessage.decoderResult().cause(); - assertTrue(cause instanceof DecoderException); + assertThat(cause, instanceOf(DecoderException.class)); assertEquals("AUTH message requires at least MQTT 5", cause.getMessage()); } @@ -411,7 +423,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -430,7 +442,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -449,7 +461,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -465,7 +477,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -484,7 +496,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -502,7 +514,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -520,7 +532,7 @@ public class MqttCodecTest { mqttDecoderLimitedMessageSize.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); assertEquals(0, byteBuf.readableBytes()); @@ -544,7 +556,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttConnectMessage decodedMessage = (MqttConnectMessage) out.get(0); @@ -564,7 +576,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttConnAckMessage decodedMessage = (MqttConnAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -581,18 +593,18 @@ public class MqttCodecTest { props.add(new MqttProperties.UserProperty("isSecret", "true")); props.add(new MqttProperties.UserProperty("tag", "firstTag")); props.add(new MqttProperties.UserProperty("tag", "secondTag")); - assertEquals("Subscription IDs count mismatch", 2, - (props.getProperties(SUBSCRIPTION_IDENTIFIER.value())).size()); - assertEquals("User properties count mismatch", 3, - (props.getProperties(USER_PROPERTY.value())).size()); - assertEquals("UserProperties count mismatch", 3, + assertEquals(2, + props.getProperties(SUBSCRIPTION_IDENTIFIER.value()).size()); + assertEquals(3, + props.getProperties(USER_PROPERTY.value()).size()); + assertEquals(3, ((MqttProperties.UserProperties) props.getProperty(USER_PROPERTY.value())).value.size()); final MqttPublishMessage message = createPublishMessage(props); ByteBuf byteBuf = MqttEncoder.doEncode(ctx, message); mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttPublishMessage decodedMessage = (MqttPublishMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -611,7 +623,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -627,7 +639,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -644,7 +656,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttSubAckMessage decodedMessage = (MqttSubAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -652,9 +664,7 @@ public class MqttCodecTest { (MqttMessageIdAndPropertiesVariableHeader) message.variableHeader(), (MqttMessageIdAndPropertiesVariableHeader) decodedMessage.variableHeader()); validateSubAckPayload(message.payload(), decodedMessage.payload()); - assertArrayEquals( - "MqttSubAckPayload QoS mismatch ", - new Integer[] {1, 2, 0, 0x80}, + assertArrayEquals(new Integer[] {1, 2, 0, 0x80}, decodedMessage.payload().grantedQoSLevels().toArray()); } @@ -676,7 +686,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttSubscribeMessage decodedMessage = (MqttSubscribeMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); final MqttMessageIdAndPropertiesVariableHeader expectedHeader = @@ -706,7 +716,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttSubscribeMessage decodedMessage = (MqttSubscribeMessage) out.get(0); final MqttSubscribeMessage expectedMessage = MqttMessageBuilders.subscribe() @@ -737,14 +747,14 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttUnsubAckMessage decodedMessage = (MqttUnsubAckMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); validatePacketIdAndPropertiesVariableHeader( (MqttMessageIdAndPropertiesVariableHeader) message.variableHeader(), (MqttMessageIdAndPropertiesVariableHeader) decodedMessage.variableHeader()); - assertEquals("Reason code list doesn't match", message.payload().unsubscribeReasonCodes(), + assertEquals(message.payload().unsubscribeReasonCodes(), decodedMessage.payload().unsubscribeReasonCodes()); } @@ -762,7 +772,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); validateReasonCodeAndPropertiesVariableHeader( @@ -781,7 +791,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); validateReasonCodeAndPropertiesVariableHeader( @@ -803,7 +813,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); validateReasonCodeAndPropertiesVariableHeader( @@ -825,7 +835,7 @@ public class MqttCodecTest { verify(versionAttrMock, times(1)).set(MqttVersion.MQTT_5); - assertEquals("Expected one CONNECT object but got " + out.size(), 1, out.size()); + assertEquals(out.size(), 1, out.size()); final MqttConnectMessage decodedConnectMessage = (MqttConnectMessage) out.get(0); @@ -841,7 +851,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -855,7 +865,7 @@ public class MqttCodecTest { mqttDecoder.channelRead(ctx, byteBuf); - assertEquals("Expected one object but got " + out.size(), 1, out.size()); + assertEquals(out.size(), 1, out.size()); final MqttMessage decodedMessage = (MqttMessage) out.get(0); validateFixedHeaders(message.fixedHeader(), decodedMessage.fixedHeader()); @@ -992,109 +1002,81 @@ public class MqttCodecTest { // MQTT messages private static void validateFixedHeaders(MqttFixedHeader expected, MqttFixedHeader actual) { - assertEquals("MqttFixedHeader MqttMessageType mismatch ", expected.messageType(), actual.messageType()); - assertEquals("MqttFixedHeader Qos mismatch ", expected.qosLevel(), actual.qosLevel()); + assertEquals(expected.messageType(), actual.messageType()); + assertEquals(expected.qosLevel(), actual.qosLevel()); } private static void validateConnectVariableHeader( MqttConnectVariableHeader expected, MqttConnectVariableHeader actual) { - assertEquals("MqttConnectVariableHeader Name mismatch ", expected.name(), actual.name()); - assertEquals( - "MqttConnectVariableHeader KeepAliveTimeSeconds mismatch ", - expected.keepAliveTimeSeconds(), - actual.keepAliveTimeSeconds()); - assertEquals("MqttConnectVariableHeader Version mismatch ", expected.version(), actual.version()); - assertEquals("MqttConnectVariableHeader Version mismatch ", expected.version(), actual.version()); + assertEquals(expected.name(), actual.name()); + assertEquals(expected.keepAliveTimeSeconds(), actual.keepAliveTimeSeconds()); + assertEquals(expected.version(), actual.version()); + assertEquals(expected.version(), actual.version()); validateProperties(expected.properties(), actual.properties()); - assertEquals("MqttConnectVariableHeader WillQos mismatch ", expected.willQos(), actual.willQos()); + assertEquals(expected.willQos(), actual.willQos()); - assertEquals("MqttConnectVariableHeader HasUserName mismatch ", expected.hasUserName(), actual.hasUserName()); - assertEquals("MqttConnectVariableHeader HasPassword mismatch ", expected.hasPassword(), actual.hasPassword()); - assertEquals( - "MqttConnectVariableHeader IsCleanSession mismatch ", - expected.isCleanSession(), - actual.isCleanSession()); - assertEquals("MqttConnectVariableHeader IsWillFlag mismatch ", expected.isWillFlag(), actual.isWillFlag()); - assertEquals( - "MqttConnectVariableHeader IsWillRetain mismatch ", - expected.isWillRetain(), - actual.isWillRetain()); + assertEquals(expected.hasUserName(), actual.hasUserName()); + assertEquals(expected.hasPassword(), actual.hasPassword()); + assertEquals(expected.isCleanSession(), actual.isCleanSession()); + assertEquals(expected.isWillFlag(), actual.isWillFlag()); + assertEquals(expected.isWillRetain(), actual.isWillRetain()); } private static void validateConnectPayload(MqttConnectPayload expected, MqttConnectPayload actual) { - assertEquals( - "MqttConnectPayload ClientIdentifier mismatch ", - expected.clientIdentifier(), - actual.clientIdentifier()); - assertEquals("MqttConnectPayload UserName mismatch ", expected.userName(), actual.userName()); - assertEquals("MqttConnectPayload Password mismatch ", expected.password(), actual.password()); - assertTrue( - "MqttConnectPayload Password bytes mismatch ", - Arrays.equals(expected.passwordInBytes(), actual.passwordInBytes())); - assertEquals("MqttConnectPayload WillMessage mismatch ", expected.willMessage(), actual.willMessage()); - assertTrue( - "MqttConnectPayload WillMessage bytes mismatch ", - Arrays.equals(expected.willMessageInBytes(), actual.willMessageInBytes())); - assertEquals("MqttConnectPayload WillTopic mismatch ", expected.willTopic(), actual.willTopic()); + assertEquals(expected.clientIdentifier(), actual.clientIdentifier()); + assertEquals(expected.userName(), actual.userName()); + assertEquals(expected.password(), actual.password()); + assertArrayEquals(expected.passwordInBytes(), actual.passwordInBytes()); + assertEquals(expected.willMessage(), actual.willMessage()); + assertArrayEquals(expected.willMessageInBytes(), actual.willMessageInBytes()); + assertEquals(expected.willTopic(), actual.willTopic()); validateProperties(expected.willProperties(), actual.willProperties()); } private static void validateConnAckVariableHeader( MqttConnAckVariableHeader expected, MqttConnAckVariableHeader actual) { - assertEquals( - "MqttConnAckVariableHeader MqttConnectReturnCode mismatch", - expected.connectReturnCode(), - actual.connectReturnCode()); + assertEquals(expected.connectReturnCode(), actual.connectReturnCode()); } private static void validatePublishVariableHeader( MqttPublishVariableHeader expected, MqttPublishVariableHeader actual) { - assertEquals("MqttPublishVariableHeader TopicName mismatch ", expected.topicName(), actual.topicName()); - assertEquals("MqttPublishVariableHeader MessageId mismatch ", expected.packetId(), actual.packetId()); + assertEquals(expected.topicName(), actual.topicName()); + assertEquals(expected.packetId(), actual.packetId()); validateProperties(expected.properties(), actual.properties()); } private static void validatePublishPayload(ByteBuf expected, ByteBuf actual) { - assertEquals("PublishPayload mismatch ", 0, expected.compareTo(actual)); + assertEquals(0, expected.compareTo(actual)); } private static void validateMessageIdVariableHeader( MqttMessageIdVariableHeader expected, MqttMessageIdVariableHeader actual) { - assertEquals("MqttMessageIdVariableHeader MessageId mismatch ", expected.messageId(), actual.messageId()); + assertEquals(expected.messageId(), actual.messageId()); } private static void validateSubAckPayload(MqttSubAckPayload expected, MqttSubAckPayload actual) { - assertArrayEquals( - "MqttSubAckPayload reason codes mismatch ", - expected.reasonCodes().toArray(), - actual.reasonCodes().toArray()); - assertArrayEquals( - "MqttSubAckPayload QoS level mismatch ", - expected.grantedQoSLevels().toArray(), - actual.grantedQoSLevels().toArray()); + assertArrayEquals(expected.reasonCodes().toArray(), actual.reasonCodes().toArray()); + assertArrayEquals(expected.grantedQoSLevels().toArray(), actual.grantedQoSLevels().toArray()); } private static void validateDecoderExceptionTooLargeMessage(MqttMessage message) { - assertNull("MqttMessage payload expected null ", message.payload()); + assertNull(message.payload()); assertTrue(message.decoderResult().isFailure()); Throwable cause = message.decoderResult().cause(); - assertTrue("MqttMessage DecoderResult cause expected instance of DecoderException ", - cause instanceof DecoderException); - assertTrue("MqttMessage DecoderResult cause reason expect to contain 'too large message' ", - cause.getMessage().contains("too large message:")); + assertThat(cause, instanceOf(DecoderException.class)); + + assertTrue(cause.getMessage().contains("too large message:")); } private static void validatePubReplyVariableHeader( MqttPubReplyMessageVariableHeader expected, MqttPubReplyMessageVariableHeader actual) { - assertEquals("MqttPubReplyMessageVariableHeader MessageId mismatch ", - expected.messageId(), actual.messageId()); - assertEquals("MqttPubReplyMessageVariableHeader reasonCode mismatch ", - expected.reasonCode(), actual.reasonCode()); + assertEquals(expected.messageId(), actual.messageId()); + assertEquals(expected.reasonCode(), actual.reasonCode()); final MqttProperties expectedProps = expected.properties(); final MqttProperties actualProps = actual.properties(); @@ -1103,8 +1085,7 @@ public class MqttCodecTest { private void validatePacketIdAndPropertiesVariableHeader(MqttMessageIdAndPropertiesVariableHeader expected, MqttMessageIdAndPropertiesVariableHeader actual) { - assertEquals("MqttMessageIdAndPropertiesVariableHeader MessageId mismatch ", - expected.messageId(), actual.messageId()); + assertEquals(expected.messageId(), actual.messageId()); final MqttProperties expectedProps = expected.properties(); final MqttProperties actualProps = actual.properties(); validateProperties(expectedProps, actualProps); @@ -1112,8 +1093,7 @@ public class MqttCodecTest { private void validateReasonCodeAndPropertiesVariableHeader(MqttReasonCodeAndPropertiesVariableHeader expected, MqttReasonCodeAndPropertiesVariableHeader actual) { - assertEquals("MqttReasonCodeAndPropertiesVariableHeader reason mismatch ", - expected.reasonCode(), actual.reasonCode()); + assertEquals(expected.reasonCode(), actual.reasonCode()); final MqttProperties expectedProps = expected.properties(); final MqttProperties actualProps = actual.properties(); validateProperties(expectedProps, actualProps); diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttConnectPayloadTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttConnectPayloadTest.java index e331d08f19..39a651cc14 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttConnectPayloadTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttConnectPayloadTest.java @@ -16,10 +16,10 @@ package io.netty.handler.codec.mqtt; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertNull; import io.netty.util.CharsetUtil; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersPacketIdTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersPacketIdTest.java index c63e771f00..09ccff0a52 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersPacketIdTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersPacketIdTest.java @@ -16,21 +16,16 @@ package io.netty.handler.codec.mqtt; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; -@RunWith(value = Parameterized.class) public class MqttMessageBuildersPacketIdTest { - @Parameterized.Parameter - public Integer id; - @Parameterized.Parameters(name = "{index}: {0}") - public static Iterable data() { + static Iterable data() { // we take a subset of valid packetIds return Arrays.asList( 0x0001, @@ -41,8 +36,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testUnsubAckMessageIdAsShort() { + @ParameterizedTest() + @MethodSource("data") + public void testUnsubAckMessageIdAsShort(Integer id) { final MqttUnsubAckMessage msg = MqttMessageBuilders.unsubAck() .packetId(id.shortValue()) .build(); @@ -53,8 +49,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testSubAckMessageIdAsShort() { + @ParameterizedTest + @MethodSource("data") + public void testSubAckMessageIdAsShort(Integer id) { final MqttSubAckMessage msg = MqttMessageBuilders.subAck() .packetId(id.shortValue()) .build(); @@ -65,8 +62,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testPubAckMessageIdAsShort() { + @ParameterizedTest + @MethodSource("data") + public void testPubAckMessageIdAsShort(Integer id) { final MqttMessage msg = MqttMessageBuilders.pubAck() .packetId(id.shortValue()) .build(); @@ -77,8 +75,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testUnsubAckMessageIdAsInt() { + @ParameterizedTest + @MethodSource("data") + public void testUnsubAckMessageIdAsInt(Integer id) { final MqttUnsubAckMessage msg = MqttMessageBuilders.unsubAck() .packetId(id) .build(); @@ -89,8 +88,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testSubAckMessageIdAsInt() { + @ParameterizedTest + @MethodSource("data") + public void testSubAckMessageIdAsInt(Integer id) { final MqttSubAckMessage msg = MqttMessageBuilders.subAck() .packetId(id) .build(); @@ -101,8 +101,9 @@ public class MqttMessageBuildersPacketIdTest { ); } - @Test - public void testPubAckMessageIdAsInt() { + @ParameterizedTest + @MethodSource("data") + public void testPubAckMessageIdAsInt(Integer id) { final MqttMessage msg = MqttMessageBuilders.pubAck() .packetId(id) .build(); diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersTest.java index 9f0363c1bf..3c902961fc 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageBuildersTest.java @@ -17,9 +17,9 @@ package io.netty.handler.codec.mqtt; import io.netty.handler.codec.mqtt.MqttMessageBuilders.PropertiesInitializer; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; public class MqttMessageBuildersTest { diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageFactoryTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageFactoryTest.java index 1fd1d5680b..f959ead7d8 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageFactoryTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttMessageFactoryTest.java @@ -16,14 +16,14 @@ package io.netty.handler.codec.mqtt; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; import static io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static io.netty.handler.codec.mqtt.MqttTestUtils.validateProperties; import static io.netty.handler.codec.mqtt.MqttTestUtils.validateSubscribePayload; import static io.netty.handler.codec.mqtt.MqttTestUtils.validateUnsubscribePayload; @@ -41,14 +41,14 @@ public class MqttMessageFactoryTest { MqttMessage unsuback = MqttMessageFactory.newMessage(fixedHeader, variableHeader, null); - assertEquals("Message type mismatch", MqttMessageType.UNSUBACK, unsuback.fixedHeader().messageType()); + assertEquals(MqttMessageType.UNSUBACK, unsuback.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) unsuback.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(MqttProperties.NO_PROPERTIES, actualVariableHeader.properties()); MqttUnsubAckPayload actualPayload = (MqttUnsubAckPayload) unsuback.payload(); - assertNotNull("payload", actualPayload); - assertEquals("reason codes size", 0, actualPayload.unsubscribeReasonCodes().size()); + assertNotNull(actualPayload); + assertEquals(0, actualPayload.unsubscribeReasonCodes().size()); } @Test @@ -66,15 +66,13 @@ public class MqttMessageFactoryTest { MqttMessage unsuback = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); - assertEquals("Message type mismatch", MqttMessageType.UNSUBACK, unsuback.fixedHeader().messageType()); + assertEquals(MqttMessageType.UNSUBACK, unsuback.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) unsuback.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(properties, actualVariableHeader.properties()); MqttUnsubAckPayload actualPayload = (MqttUnsubAckPayload) unsuback.payload(); - assertEquals("Reason code list doesn't match", - payload.unsubscribeReasonCodes(), - actualPayload.unsubscribeReasonCodes()); + assertEquals(payload.unsubscribeReasonCodes(), actualPayload.unsubscribeReasonCodes()); } @Test @@ -89,10 +87,10 @@ public class MqttMessageFactoryTest { MqttMessage subscribe = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); - assertEquals("Message type mismatch", MqttMessageType.SUBSCRIBE, subscribe.fixedHeader().messageType()); + assertEquals(MqttMessageType.SUBSCRIBE, subscribe.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) subscribe.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(MqttProperties.NO_PROPERTIES, actualVariableHeader.properties()); MqttSubscribePayload actualPayload = (MqttSubscribePayload) subscribe.payload(); validateSubscribePayload(payload, actualPayload); @@ -113,10 +111,10 @@ public class MqttMessageFactoryTest { MqttMessage subscribe = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); - assertEquals("Message type mismatch", MqttMessageType.SUBSCRIBE, subscribe.fixedHeader().messageType()); + assertEquals(MqttMessageType.SUBSCRIBE, subscribe.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) subscribe.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(properties, actualVariableHeader.properties()); MqttSubscribePayload actualPayload = (MqttSubscribePayload) subscribe.payload(); validateSubscribePayload(payload, actualPayload); @@ -134,10 +132,10 @@ public class MqttMessageFactoryTest { MqttMessage unsubscribe = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); - assertEquals("Message type mismatch", MqttMessageType.UNSUBSCRIBE, unsubscribe.fixedHeader().messageType()); + assertEquals(MqttMessageType.UNSUBSCRIBE, unsubscribe.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) unsubscribe.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(MqttProperties.NO_PROPERTIES, actualVariableHeader.properties()); MqttUnsubscribePayload actualPayload = (MqttUnsubscribePayload) unsubscribe.payload(); validateUnsubscribePayload(payload, actualPayload); @@ -158,10 +156,10 @@ public class MqttMessageFactoryTest { MqttMessage unsubscribe = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); - assertEquals("Message type mismatch", MqttMessageType.UNSUBSCRIBE, unsubscribe.fixedHeader().messageType()); + assertEquals(MqttMessageType.UNSUBSCRIBE, unsubscribe.fixedHeader().messageType()); MqttMessageIdAndPropertiesVariableHeader actualVariableHeader = (MqttMessageIdAndPropertiesVariableHeader) unsubscribe.variableHeader(); - assertEquals("MessageId mismatch", SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); + assertEquals(SAMPLE_MESSAGE_ID, actualVariableHeader.messageId()); validateProperties(properties, actualVariableHeader.properties()); MqttUnsubscribePayload actualPayload = (MqttUnsubscribePayload) unsubscribe.payload(); validateUnsubscribePayload(payload, actualPayload); diff --git a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttPropertiesTest.java b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttPropertiesTest.java index d397f56041..580056a158 100644 --- a/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttPropertiesTest.java +++ b/codec-mqtt/src/test/java/io/netty/handler/codec/mqtt/MqttPropertiesTest.java @@ -16,7 +16,8 @@ package io.netty.handler.codec.mqtt; -import org.junit.Test; + +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Collections; @@ -26,7 +27,7 @@ import static io.netty.handler.codec.mqtt.MqttProperties.MqttPropertyType.CONTEN import static io.netty.handler.codec.mqtt.MqttProperties.MqttPropertyType.PAYLOAD_FORMAT_INDICATOR; import static io.netty.handler.codec.mqtt.MqttProperties.MqttPropertyType.SUBSCRIPTION_IDENTIFIER; import static io.netty.handler.codec.mqtt.MqttProperties.MqttPropertyType.USER_PROPERTY; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class MqttPropertiesTest { @@ -46,10 +47,10 @@ public class MqttPropertiesTest { public void testGetProperty() { MqttProperties props = createSampleProperties(); - assertEquals("getProperty Content Type", + assertEquals( "text/plain", ((MqttProperties.StringProperty) props.getProperty(CONTENT_TYPE.value())).value); - assertEquals("getProperty Subscription ID", + assertEquals( 10, ((MqttProperties.IntegerProperty) props.getProperty(SUBSCRIPTION_IDENTIFIER.value())).value.intValue()); @@ -59,21 +60,21 @@ public class MqttPropertiesTest { expectedUserProps.add(new MqttProperties.StringPair("tag", "secondTag")); List actualUserProps = ((MqttProperties.UserProperties) props.getProperty(USER_PROPERTY.value())).value; - assertEquals("getProperty User Properties", expectedUserProps, actualUserProps); + assertEquals(expectedUserProps, actualUserProps); } @Test public void testGetProperties() { MqttProperties props = createSampleProperties(); - assertEquals("getProperties Content Type", + assertEquals( Collections.singletonList(new MqttProperties.StringProperty(CONTENT_TYPE.value(), "text/plain")), props.getProperties(CONTENT_TYPE.value())); List expectedSubscriptionIds = new ArrayList(); expectedSubscriptionIds.add(new MqttProperties.IntegerProperty(SUBSCRIPTION_IDENTIFIER.value(), 10)); expectedSubscriptionIds.add(new MqttProperties.IntegerProperty(SUBSCRIPTION_IDENTIFIER.value(), 20)); - assertEquals("getProperties Subscription ID", + assertEquals( expectedSubscriptionIds, props.getProperties(SUBSCRIPTION_IDENTIFIER.value())); @@ -83,7 +84,7 @@ public class MqttPropertiesTest { expectedUserProps.add(new MqttProperties.UserProperty("tag", "secondTag")); List actualUserProps = (List) props.getProperties(USER_PROPERTY.value()); - assertEquals("getProperty User Properties", expectedUserProps, actualUserProps); + assertEquals(expectedUserProps, actualUserProps); } @Test @@ -104,9 +105,7 @@ public class MqttPropertiesTest { expectedProperties.add(expectedUserProperties); - assertEquals("listAll", - expectedProperties, - props.listAll()); + assertEquals(expectedProperties, props.listAll()); } }