From 08a352db329c277a88c9bf45ceeba56d473f02fb Mon Sep 17 00:00:00 2001 From: Wiebe Cazemier Date: Sun, 7 Aug 2022 13:23:32 +0200 Subject: [PATCH] Convert testDowngradeQoSOnSubscribeHelper to native test client --- FlashMQTests/tst_maintests.cpp | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/FlashMQTests/tst_maintests.cpp b/FlashMQTests/tst_maintests.cpp index 1f8ec36..64d525a 100644 --- a/FlashMQTests/tst_maintests.cpp +++ b/FlashMQTests/tst_maintests.cpp @@ -1229,27 +1229,39 @@ void MainTests::testParsePacket() void testDowngradeQoSOnSubscribeHelper(const char pub_qos, const char sub_qos) { - TwoClientTestContext testContext; + std::vector protocols {ProtocolVersion::Mqtt311, ProtocolVersion::Mqtt5}; - const QString topic("Star/Trek"); - const QByteArray payload("Captain Kirk"); + for (const ProtocolVersion senderVersion : protocols) + { + for (const ProtocolVersion receiverVersion : protocols) + { + FlashMQTestClient sender; + FlashMQTestClient receiver; - testContext.connectSender(); - testContext.connectReceiver(); + sender.start(); + receiver.start(); - testContext.subscribeReceiver(topic, sub_qos); - testContext.publish(topic, payload, pub_qos, false); + const std::string topic("Star/Trek"); + const std::string payload("Captain Kirk"); - testContext.waitReceiverReceived(1); + sender.connectClient(senderVersion); + receiver.connectClient(receiverVersion); - QCOMPARE(testContext.receivedMessages.length(), 1); - QMQTT::Message &recv = testContext.receivedMessages.first(); + receiver.subscribe(topic, sub_qos); + sender.publish(topic, payload, pub_qos); + + receiver.waitForMessageCount(1); - const char expected_qos = std::min(pub_qos, sub_qos); - QVERIFY2(recv.qos() == expected_qos, formatString("Failure: received QoS is %d. Published is %d. Subscribed as %d. Expected QoS is %d", - recv.qos(), pub_qos, sub_qos, expected_qos).c_str()); - QVERIFY(recv.topic() == topic); - QVERIFY(recv.payload() == payload); + MYCASTCOMPARE(receiver.receivedPublishes.size(), 1); + MqttPacket &recv = receiver.receivedPublishes.front(); + + const char expected_qos = std::min(pub_qos, sub_qos); + QVERIFY2(recv.getQos() == expected_qos, formatString("Failure: received QoS is %d. Published is %d. Subscribed as %d. Expected QoS is %d", + recv.getQos(), pub_qos, sub_qos, expected_qos).c_str()); + QVERIFY(recv.getTopic() == topic); + QVERIFY(recv.getPayloadCopy() == payload); + } + } } void MainTests::testDowngradeQoSOnSubscribeQos2to2() -- libgit2 0.21.4