Files
qt5-legatus-legacy/Lts/Services/SituationReplay/ModuleTests/srp_ft_tests.h
T
2026-08-13 18:33:10 +02:00

85 lines
2.2 KiB
C++
Executable File

/**
* @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 <SituationReplay/srp_ftc.h>
#include <SituationReplay/srp_ftc_types.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/DDSConnector/publisher.h>
#include <DDS/DDSConnector/subscriber.h>
#include <Common/ProjectConfig/project_defines.h>
#include <SituationReplay/logger.h>
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<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<SituationReplay::Interface::Ftc> m_ftc;
qint32 m_replayPartitionId;
qint32 m_situationReplayId;
TestId m_testId;
TestId m_currentTestId;
bool m_bTestsSuccessful;
LOGGER_T m_logger;
};
} // namespace SituationReplay