/** * @RDE_HEADER@ * SRP Function Topic test executable * * ModuleTests for create/modify/remove exercise * --------------------------------------------------- * Client FTC is implemented * * => (!) Preconditon: * - Service sSrp running * * ------------------------------------------------- * * $Id$ * $HeadURL$ * $Author$ * * Created by Hanna E. Rathje, SLSE, 2016-01-14 */ #pragma once #include #include #include #include #include #include #include namespace SituationReplay { class SrpFtTests : public QObject , protected SituationReplay::Interface::Ftc::ChangeReplayStateReplyHandler { using Publisher = DDSConnector::Publisher; using Subscriber = DDSConnector::Subscriber; Q_OBJECT public: enum TestId { All, TryStart, TryNotAllowedChange, TryChangePaused, TryChangeResumed, TryStop, }; explicit SrpFtTests(QObject *parent = nullptr); ~SrpFtTests(); bool init(int domainId, TestId testId, int replayPartitionId, int srpId); bool testsSuccessful() const { return m_bTestsSuccessful; } public Q_SLOTS: void startTest(); protected Q_SLOTS: void tryStart(); void tryNotAllowedChange(); void tryChangePaused(); void tryChangeResumed(); void tryStop(); protected: void startReplayReply(const Core::FunctionReplyObject &replyObject); void stopReplayReply(const Core::FunctionReplyObject &replyObject); void changeReplayStateReply(const Core::FunctionReplyObject &replyObject); void onChangeReplayStateReply(const Core::FunctionReplyObject &replyObject) override final; void failExit(); void switchToState(SrpState state); private: std::shared_ptr m_ddsConnector; std::shared_ptr m_ftc; qint32 m_replayPartitionId; qint32 m_situationReplayId; TestId m_testId; TestId m_currentTestId; bool m_bTestsSuccessful; LOGGER_T m_logger; }; } // namespace SituationReplay