/** * AES Function Topic Client test executable * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "aes_test_base.h" namespace AreaEffectSimulation { class TestBoobyTrap final : public TestBase , protected AreaEffectSimulation::Interface::Ftc::BoobyTrapModifyReplyHandler , protected AreaEffectSimulation::Interface::Ftc::BoobyTrapRemoveReplyHandler , protected AreaEffectSimulation::Interface::Ftc::BoobyTrapTriggerReplyHandler { Q_OBJECT public: explicit TestBoobyTrap(QObject *parent = nullptr); bool init(int domainId, int exerciseId, int testId) override; public Q_SLOTS: void startTest() override { tryCreateBoobyTrap(); } private Q_SLOTS: void tryCreateBoobyTrap(); void tryModifyBoobyTrap(); void tryTriggerBoobyTrap(); void waitExpireBoobyTrap(); void tryRemoveBoobyTrap(); protected Q_SLOTS: void boobyTrapChanged(const AreaEffectSimulation::BoobyTrap &data, DataModification modType); protected: void onBoobyTrapModifyReply(const Core::FunctionReplyObject &replyObject) override; void onBoobyTrapRemoveReply(const Core::FunctionReplyObject &replyObject) override; void onBoobyTrapTriggerReply(const Core::FunctionReplyObject &replyObject) override; private: bool checkBaseData(const AreaEffectSimulation::BoobyTrap &a, const AreaEffectSimulation::BoobyTrap &b) const; private: AreaEffectSimulation::BoobyTrap m_btData; }; } // namespace AreaEffectSimulation