/** * @RDE_HEADER@ * UnitTests for ExerciseManagement (EXM) * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-08-20 */ #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_exm_unit_tests.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_serviceInformationDataArrivedSpy = new QSignalSpy(m_dtTest, &DataTopicTests::serviceInformationDataArrived); m_groupInformationDataArrivedSpy = new QSignalSpy(m_dtTest, &DataTopicTests::groupInformationDataArrived); } void DataTopicTestsMain::publishServiceInformationTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: publish ServiceInformation data"; // Topic ServiceInformation m_sentServiceInformationData.id(13); m_sentServiceInformationData.name("UnitTest dummy Service"); m_sentServiceInformationData.state(Core::RunningState::inner_enum::NotYetStarted); m_sentServiceInformationData.timestamp(QDateTime::currentMSecsSinceEpoch()); m_sentServiceInformationData.errorString(QStringLiteral("UnitTest dummy Error").toStdString()); QVERIFY2(m_dtTest->write(m_sentServiceInformationData), "Publishing Topic ServiceInformation failed"); } void DataTopicTestsMain::subscribeServiceInformationTestCase() { DEBUG_LOG(m_logger) << "IN subscribeServiceInformationTestCase"; QTRY_COMPARE(m_serviceInformationDataArrivedSpy->count(), 1); ServiceManagement::ServiceInformation recvServiceInformation = m_dtTest->getReceivedServiceInformationData(); QCOMPARE(recvServiceInformation.id(), m_sentServiceInformationData.id()); QCOMPARE(recvServiceInformation.name(), m_sentServiceInformationData.name()); QCOMPARE(recvServiceInformation.state(), m_sentServiceInformationData.state()); QCOMPARE(recvServiceInformation.timestamp(), m_sentServiceInformationData.timestamp()); QCOMPARE(recvServiceInformation.errorString(), m_sentServiceInformationData.errorString()); } void DataTopicTestsMain::publishGroupInformationTestCase() { DEBUG_LOG(m_logger) << "DataTopicTestsMain: publish GroupInformation data"; std::vector services = {1, 3, 5, 7, 11, 13, 17, 19, 23, 42}; // Topic GroupInformation m_sentGroupInformationData.type(Core::ServiceGroupType::inner_enum::Master); m_sentGroupInformationData.exercisePartitionId(113); m_sentGroupInformationData.domainId(42); m_sentGroupInformationData.services(services); m_sentGroupInformationData.timestamp(QDateTime::currentMSecsSinceEpoch()); QVERIFY2(m_dtTest->write(m_sentGroupInformationData), "Publishing Topic GroupInformation failed"); } void DataTopicTestsMain::subscribeGroupInformationTestCase() { DEBUG_LOG(m_logger) << "IN subscribeGroupInformationTestCase"; QTRY_COMPARE(m_groupInformationDataArrivedSpy->count(), 1); ServiceManagement::GroupInformation recvGroupInformation = m_dtTest->getReceivedGroupInformationData(); QCOMPARE(recvGroupInformation.type(), m_sentGroupInformationData.type()); QCOMPARE(recvGroupInformation.exercisePartitionId(), m_sentGroupInformationData.exercisePartitionId()); QCOMPARE(recvGroupInformation.domainId(), m_sentGroupInformationData.domainId()); QCOMPARE(recvGroupInformation.services(), m_sentGroupInformationData.services()); QCOMPARE(recvGroupInformation.timestamp(), m_sentGroupInformationData.timestamp()); } void DataTopicTestsMain::cleanupTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: cleanupTestCase"; delete m_dtTest; m_dtTest = nullptr; delete m_serviceInformationDataArrivedSpy; m_serviceInformationDataArrivedSpy = nullptr; delete m_groupInformationDataArrivedSpy; m_groupInformationDataArrivedSpy = nullptr; }