Skip to content

Commit 53ad08d

Browse files
committed
mqtt: tests
1 parent 0b1ae5e commit 53ad08d

1 file changed

Lines changed: 26 additions & 8 deletions

File tree

mqtt_streaming_module/tests/test_mqtt_raw_fb.cpp

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <opendaq/data_packet_ptr.h>
88
#include <opendaq/reader_factory.h>
99
#include <testutils/testutils.h>
10+
#include <mqtt_streaming_helper/timer.h>
1011

1112
using namespace daq;
1213
using namespace daq::modules::mqtt_streaming_module;
@@ -321,8 +322,17 @@ TEST_F(MqttRawFbTest, CheckRawFbFullDataTransferWithReconfiguring)
321322
auto singal = rawFB.getSignals()[0];
322323
auto reader = daq::PacketReader(singal);
323324

325+
const auto stHasData = EnumerationWithIntValue(MQTT_RAW_FB_SUB_STATUS_TYPE,
326+
static_cast<Int>(MqttBaseFb::SubscriptionStatus::HasData),
327+
daqInstance.getContext().getTypeManager());
328+
329+
const auto stWaitData = EnumerationWithIntValue(MQTT_RAW_FB_SUB_STATUS_TYPE,
330+
static_cast<Int>(MqttBaseFb::SubscriptionStatus::WaitingForData),
331+
daqInstance.getContext().getTypeManager());
332+
324333
MqttAsyncClientWrapper publisher("testPublisherId");
325334
ASSERT_TRUE(publisher.connect("127.0.0.1"));
335+
EXPECT_EQ(rawFB.getStatusContainer().getStatus("SubscriptionStatus"), stWaitData);
326336

327337
mqtt::MqttMessage msg = {topic0, dataToSend[0], 2, 0};
328338
ASSERT_TRUE(publisher.publishMsg(msg));
@@ -344,6 +354,13 @@ TEST_F(MqttRawFbTest, CheckRawFbFullDataTransferWithReconfiguring)
344354
}
345355
}
346356
};
357+
helper::utils::Timer tmr(1000, true);
358+
359+
bool hasData = false;
360+
while (tmr.expired() == false && hasData == false)
361+
hasData = rawFB.getStatusContainer().getStatus("SubscriptionStatus") == stHasData;
362+
363+
EXPECT_TRUE(hasData);
347364

348365
readerLambda();
349366
ASSERT_EQ(dataToReceive.size(), 1u);
@@ -354,16 +371,17 @@ TEST_F(MqttRawFbTest, CheckRawFbFullDataTransferWithReconfiguring)
354371
ASSERT_NO_THROW(rawFB.setPropertyValue(PROPERTY_NAME_TOPIC, topic1));
355372
EXPECT_EQ(rawFB.getStatusContainer().getStatus("ComponentStatus"),
356373
Enumeration("ComponentStatusType", "Ok", daqInstance.getContext().getTypeManager()));
357-
EXPECT_EQ(rawFB.getStatusContainer().getStatus("SubscriptionStatus"),
358-
EnumerationWithIntValue(MQTT_RAW_FB_SUB_STATUS_TYPE,
359-
static_cast<Int>(MqttBaseFb::SubscriptionStatus::WaitingForData),
360-
daqInstance.getContext().getTypeManager()));
374+
EXPECT_EQ(rawFB.getStatusContainer().getStatus("SubscriptionStatus"), stWaitData);
375+
361376
msg = {topic1, dataToSend[1], 2, 0};
362377
ASSERT_TRUE(publisher.publishMsg(msg));
363-
EXPECT_EQ(rawFB.getStatusContainer().getStatus("SubscriptionStatus"),
364-
EnumerationWithIntValue(MQTT_RAW_FB_SUB_STATUS_TYPE,
365-
static_cast<Int>(MqttBaseFb::SubscriptionStatus::HasData),
366-
daqInstance.getContext().getTypeManager()));
378+
tmr.restart();
379+
380+
hasData = false;
381+
while (tmr.expired() == false && hasData == false)
382+
hasData = rawFB.getStatusContainer().getStatus("SubscriptionStatus") == stHasData;
383+
384+
EXPECT_TRUE(hasData);
367385

368386
readerLambda();
369387
ASSERT_EQ(dataToReceive.size(), 1u);

0 commit comments

Comments
 (0)