/** * @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_exerciseDataArrivedSpy = new QSignalSpy(m_dtTest, &DataTopicTests::exerciseDataArrived); } //------------------------------------------------------------------------------------------------------- void DataTopicTestsMain::publishTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: publish data"; // Topic Exercise m_sentExerciseData.id(222); m_sentExerciseData.state(ExerciseManagement::ExerciseState::Started); m_sentExerciseData.name("UnitTest Exe 222"); m_sentExerciseData.isUsed(true); m_sentExerciseData.partitionName(IDL::exercisePartition(222)); QVERIFY2(m_dtTest->write(m_sentExerciseData), "Publishing Topic Exercise failed"); } void DataTopicTestsMain::subscribeTestCase() { DEBUG_LOG(m_logger) << "IN subscribeTestCase"; QTRY_COMPARE(m_exerciseDataArrivedSpy->count(), 1); ExerciseManagement::Exercise recvExercise = m_dtTest->getReceivedExerciseData(); QCOMPARE(recvExercise.id(), m_sentExerciseData.id()); QCOMPARE(recvExercise.state(), m_sentExerciseData.state()); } //------------------------------------------------------------------------------------------------------- void DataTopicTestsMain::cleanupTestCase() { DEBUG_LOG(m_logger) <<"DataTopicTestsMain: cleanupTestCase"; delete m_dtTest; m_dtTest = nullptr; delete m_exerciseDataArrivedSpy; m_exerciseDataArrivedSpy = nullptr; }