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

79 lines
2.3 KiB
C++
Executable File

/**
* AES Function Topic Client test executable
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include "aes_test_base.h"
namespace AreaEffectSimulation
{
class TestExplosionSingle : public TestBase
, protected AreaEffectSimulation::Interface::Ftc::ExplosionSingleModifyReplyHandler
, protected AreaEffectSimulation::Interface::Ftc::ExplosionSingleRemoveReplyHandler
{
Q_OBJECT
public:
explicit TestExplosionSingle(QObject *parent = nullptr);
bool init(int domainId, int exerciseId, int testId) override;
public Q_SLOTS:
void startTest() override { tryCreateExplosionSingle(); }
private Q_SLOTS:
void tryCreateExplosionSingle();
void tryModifyExplosionSingle();
void waitExpireExplosionSingle();
protected Q_SLOTS:
void explosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType);
protected:
void onExplosionSingleModifyReply(const Core::FunctionReplyObject &replyObject) override;
void onExplosionSingleRemoveReply(const Core::FunctionReplyObject &replyObject) override;
private:
bool checkBaseData(const AreaEffectSimulation::ExplosionSingle &a,
const AreaEffectSimulation::ExplosionSingle &b) const;
protected:
AreaEffectSimulation::ExplosionSingle m_esData;
};
class TestExplosionSingleTestVWM final : public TestExplosionSingle
{
Q_OBJECT
public:
explicit TestExplosionSingleTestVWM(QObject *parent = nullptr);
void setName(const std::string &name) { m_name = name; }
void setAmmoId(int ammoId) { m_ammoId = ammoId; }
void setPosition(const Core::GeoPosition2D &position) { m_position = position; }
public Q_SLOTS:
void startTest() override
{
tryCreateExplosionSingleVWM(m_name, m_ammoId, m_position);
}
private Q_SLOTS:
void tryCreateExplosionSingleVWM(const std::string &esName = "Norbert",
int ammoId = 371,
const Core::GeoPosition2D &position = Core::GeoPosition2D(0.202603, 0.916049)
);
void onExplosionSingleCreateReply(const Core::FunctionReplyObject &replyObject);
private:
std::string m_name;
int m_ammoId{-1};
Core::GeoPosition2D m_position;
};
} // namespace AreaEffectSimulation