#include "data_topic_tests_main.h" #include "data_topic_tests.h" #include #include #include #include int main(int argc, char *argv[]) { NGLCoreApplication app(argc, argv); app.createLogger("UnitTests", "log4cxx_ddsUnitTests.props"); DataTopicTestsMain *tc = new DataTopicTestsMain; int retCode = QTest::qExec(tc, argc, argv); delete tc; return retCode; } DataTopicTestsMain::DataTopicTestsMain() : m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("UnitTests.DataTopicTestsMain")) { } void DataTopicTestsMain::initTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: initTestCase"; m_dtTest = new DataTopicTests(); QVERIFY2(m_dtTest, "Initialisation of DataTopicTest failed"); QVERIFY2(m_dtTest->initPublisher(), "Initialisation Publisher failed"); QVERIFY2(m_dtTest->initSubscriber(), "Initialisation Subscriber failed"); m_participantDataArrivedSpy = new QSignalSpy(m_dtTest, &DataTopicTests::testParticipantDataArrived); } void DataTopicTestsMain::publishTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: publish TestParticipant"; m_sentParticipantData.location().participantId(100); m_sentParticipantData.location().equipNo(1010); m_sentParticipantData.testId(100); QVERIFY2(m_dtTest->write(m_sentParticipantData), "Publishing Topic TestParticipant failed"); DEBUG_LOG(m_logger) <<"DataTopicTestsMain: publish ready"; } void DataTopicTestsMain::subscribeTestCase() { DEBUG_LOG(m_logger) << "IN subscribeTestCase"; QTRY_COMPARE(m_participantDataArrivedSpy->count(), 1); DdsUnitTests::TestParticipant recvPartiticpant = m_dtTest->getReceivedParticipantData(); QCOMPARE(recvPartiticpant.location().participantId(), m_sentParticipantData.location().participantId()); QCOMPARE(recvPartiticpant.location().equipNo(), m_sentParticipantData.location().equipNo()); } void DataTopicTestsMain::deleteDataReaderTestCase() { DdsUnitTests::TestParticipant data; for (int i = 0; i < 1000; ++i) { m_sentParticipantData.id(i); m_dtTest->write(m_sentParticipantData); } m_dtTest->deleteDTC(); for (int i = 0; i < 1000; ++i) { m_sentParticipantData.id(i); m_dtTest->write(m_sentParticipantData); } m_dtTest->deleteSubscriber(); for (int i = 0; i < 1000; ++i) { m_sentParticipantData.id(i); m_dtTest->write(m_sentParticipantData); } } void DataTopicTestsMain::cleanupTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: cleanupTestCase"; delete m_dtTest; m_dtTest = nullptr; delete m_participantDataArrivedSpy; m_participantDataArrivedSpy = nullptr; }