/** * @RDE_HEADER@ * AES Function Topic Client test executable * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "aes_test_base.h" namespace AreaEffectSimulation { class TestExplosionCluster final : public TestBase , protected AreaEffectSimulation::Interface::Ftc::ExplosionClusterModifyReplyHandler , protected AreaEffectSimulation::Interface::Ftc::ExplosionClusterPauseResumeReplyHandler { Q_OBJECT public: explicit TestExplosionCluster(QObject *parent = nullptr); bool init(int domainId, int exerciseId, int testId) override; public Q_SLOTS: void startTest() override { tryCreateExplosionCluster(); } private Q_SLOTS: void tryCreateExplosionCluster(); // void tryModifyExplosionCluster(); void tryWaitForActivationExplosionCluster(); void tryPauseResumeExplosionCluster(); void checkTriggeredExplosions(); void checkTriggeredExplosionsHelper(int bitfield); protected Q_SLOTS: void explosionClusterChanged(const AreaEffectSimulation::ExplosionCluster &data, DataModification modType); void triggeredImpactsChanged(const AreaEffectSimulation::TriggeredImpacts &data, DataModification modType); protected: void onExplosionClusterModifyReply(const Core::FunctionReplyObject &replyObject) override; void onExplosionClusterPauseResumeReply(const Core::FunctionReplyObject &replyObject) override; private: bool checkBaseData(const AreaEffectSimulation::ExplosionCluster &a, const AreaEffectSimulation::ExplosionCluster &b) const; private: AreaEffectSimulation::ExplosionCluster m_ecData; AreaEffectSimulation::TriggeredImpacts m_tiData; }; } // namespace AreaEffectSimulation