/** * AES Function Topic Client test executable * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "aes_test_base.h" namespace AreaEffectSimulation { class TestMineArea final : public TestBase , protected AreaEffectSimulation::Interface::Ftc::MineAreaModifyReplyHandler , protected AreaEffectSimulation::Interface::Ftc::MineAreaRemoveReplyHandler , protected AreaEffectSimulation::Interface::Ftc::MineResetReplyHandler , protected AreaEffectSimulation::Interface::Ftc::MineTriggeredReplyHandler , protected AreaEffectSimulation::Interface::Ftc::MineAreaReferenceModifyReplyHandler { Q_OBJECT public: explicit TestMineArea(QObject *parent = nullptr); bool init(int domainId, int exerciseId, int testId) override; public Q_SLOTS: void startTest() override; private Q_SLOTS: void tryCreateMineArea(); void testMineData_11(); void testAddMineData_11(); void testMineData_21(); void testAddMineData_21(); void setSegmentForTesMineData(); void tryModifyMineArea(); void waitExpireMineArea(); void tryTriggerDusMineInBoth(); void tryCreateAnotherMineArea(); void tryCreateMineArea2(int chargeTypeId, double density = 0.2); protected Q_SLOTS: void mineAreaChanged(const AreaEffectSimulation::MineArea &data, DataModification modType); protected: void onMineAreaModifyReply(const Core::FunctionReplyObject &replyObject) override; void onMineAreaRemoveReply(const Core::FunctionReplyObject &replyObject) override; void onMineResetReply(const Core::FunctionReplyObject &replyObject) override; void onMineTriggeredReply(const Core::FunctionReplyObject &replyObject) override; void onMineAreaReferenceModifyReply(const Core::FunctionReplyObject &replyObject) override; private: bool checkBaseData(const AreaEffectSimulation::MineArea &a, const AreaEffectSimulation::MineArea &b) const; private: AreaEffectSimulation::MineArea m_maData; QMap> m_mapSegmentForm; int m_referencedAesItemId = 0; int32_t m_wirkzeitMsec = 3 * 10 * 1000; // 30 sec int m_currentMineId = 0; }; } // namespace AreaEffectSimulation