/** * @RDE_HEADER@ * * EXM Function Topic test executable * * ModuleTests for createNotification/readReceipt * --------------------------------------------------- * Client FTC is implemented * * => (!) Preconditon: * - Service svcNotificationManagent running * * ------------------------------------------------- * * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, ESZS, 2025-06-23 */ #pragma once #include #include #include #include #include #include #include namespace NotificationManagement { class NomTests : public QObject , protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler , protected NotificationManagement::Interface::Ftc::ReadReceiptReplyHandler { Q_OBJECT public: explicit NomTests(QObject *parent = nullptr); ~NomTests(); bool init(int domainId, int exerciseId, int testId, int notificationId); bool testsSuccessful() const { return m_bTestsSuccessful; } public Q_SLOTS: void startTest(); protected Q_SLOTS: // used to check FTC void tryCreate(); void tryCreateHQ(); void tryReadReceipt(); void tryRemove(); // used to check DTC void tryGetAllNotifications(); void tryGetNotification(); // used to check DTC signal/slot connection void onReceiveNotificationChanged(const NomNotification &data, DataModification modType); protected: // Callbackfunctions for FTC void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject) override final; void onReadReceiptReply(const Core::FunctionReplyObject &reply) override final; private Q_SLOTS: bool onCompareCreatedData(NomNotification &data); //bool onCompareModifiedData(NomNotification &data); private: void getCreateNotificationRequestData(CreateNotificationRequest &data); void failExit(); private: std::shared_ptr m_ddsConnector; std::shared_ptr m_ftc; std::shared_ptr m_dtc; std::shared_ptr m_opmDtc; qint32 m_exerciseId; int m_testId; int m_notificationId; enum TestStep { eUnknown, eCreate, eReadReceipt, eRemove, eGetAllNotifications, eGetNotification } m_eTestStep; bool m_bTestsSuccessful; NGL::INGLLogger &m_logger; }; } // namespace NotificationManagement