Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,77 @@
#
# @RDE_HEADER@
# $Id: CMakeLists.txt 64525 2025-02-14 12:35:41Z fritsche_h $
# $HeadURL: svn://slssvn/TDS/branches/product/features/24_adler/Lts/Services/AreaEffectSimulation/ModuleTest_ExplosionCluster/CMakeLists.txt $
# $Author: fritsche_h $
#
SET(UnitTestSources
test_telegram_decoding.cpp
ex_anmeldung.cpp
ex_anmeldung.h
ex_abmeldung.cpp
ex_abmeldung.h
ex_anmeldebestaetigung.cpp
ex_anmeldebestaetigung.h
ex_status.cpp
ex_status.h
ex_fq_wirkfeldplanung.cpp
ex_fq_wirkfeldplanung.h
ex_fq_feuerbereit.cpp
ex_fq_feuerbereit.h
ex_fq_feuern.cpp
ex_fq_feuern.h
ex_fq_abgefeuert.cpp
ex_fq_abgefeuert.h
ex_fq_vollzugsmeldung.cpp
ex_fq_vollzugsmeldung.h
# ex_erkundungsanfrage.cpp
# ex_erkundungsanfrage.h
ex_erkundungsergebnisse.cpp
ex_erkundungsergebnisse.h
ex_fq_feuerkampf.cpp
ex_fq_feuerkampf.h
ex_fh_feuerhalt.cpp
ex_fh_feuerhalt.h
ex_sq_stellungsmeldung_fs.cpp
ex_sq_stellungsmeldung_fs.h
ex_sq_stellungsmeldung_ws.cpp
ex_sq_stellungsmeldung_ws.h
ex_sq_stellungsmeldung_lp.cpp
ex_sq_stellungsmeldung_lp.h
ex_sq_stellungswechsel.cpp
ex_sq_stellungswechsel.h
ex_hq_koordinierungsmassnahmen.cpp
ex_hq_koordinierungsmassnahmen.h
ex_hq_fuehrungslinien.cpp
ex_hq_fuehrungslinien.h
ex_tq_technische_quittung.cpp
ex_tq_technische_quittung.h
ex_aq_freitext.cpp
ex_aq_freitext.h
ex_mq_manuelle_quittung.cpp
ex_mq_manuelle_quittung.h
ex_flugbahnberechnung.cpp
ex_flugbahnberechnung.h
ex_flugbahndaten.cpp
ex_flugbahndaten.h
)
IF(BUILD_TESTING)
ADD_EXECUTABLE(tabModuleTestAdler ${LinkedSources} ${UnitTestSources}
msgcompares.h msgcompares.cpp)
TARGET_LINK_LIBRARIES(tabModuleTestAdler
NGLLogger
LtsCommandLineParser
nglsettings
nglapplication
saaTelegrams
Qt5::Network
Qt5::WebSockets
Qt5::Test
)
# ADD_TEST(NAME tabModuleTestAdler COMMAND $<TARGET_FILE:aesUnitTestTneAlgorithmen>)
ENDIF()
@@ -0,0 +1,66 @@
#include "ex_abmeldung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExAbmeldung::TestExAbmeldung()
{
}
// Text Message received: {
// "data": {
// "partyId": 2,
// },
// "reciver": "EXCON@GUEZ.DE",
// "referenceUuid": "",
// "sender": "SAA@GUEZ.DE",
// "timestamp": {
// "jahr": 2025,
// "minuten": 56,
// "monat": 3,
// "sekunden": 9,
// "stunden": 12,
// "tag": 18,
// "zdm": "ZDM",
// "zds": "ZDS",
// "zvz": "ZVz"
// },
// "typeId": 1,
// "typeName": "EX-Abmeldung",
// "uuid": "{30eb8761-7d1b-4e37-8a51-6c1995be9825}",
// "version": ""
// }
QString TestExAbmeldung::generateDisconnectMessage()
{
AdlerJson::EXDeregistration req;
GenerateTelegrams::addHeaderData(req, m_partyId);
GenerateTelegrams::generateAbmeldung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExAbmeldung::testExAbmeldung()
{
qDebug() << "----------------------";
qDebug() << "--- EX-Abmeldung ---";
QString disconnectMessage = generateDisconnectMessage();
QJsonDocument jsonDoc = QJsonDocument::fromJson(disconnectMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Abmeldedaten abmeldedaten;
bool bOk;
AdlerJson::abmeldedatenFromJson(dataObj, abmeldedaten, bOk);
QCOMPARE(abmeldedaten.partyId, m_partyId );
}
@@ -0,0 +1,24 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExAbmeldung : public QObject {
Q_OBJECT
public:
TestExAbmeldung();
QString generateDisconnectMessage();
private slots:
void testExAbmeldung();
private:
int m_partyId {2};
};
@@ -0,0 +1,36 @@
#include "ex_anmeldebestaetigung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExAnmeldebestaetigung::TestExAnmeldebestaetigung()
{
}
QString TestExAnmeldebestaetigung::generateAnmeldebestaetigung()
{
AdlerJson::ExAnmeldebestaetigung req;
GenerateTelegrams::addHeaderData(req, m_partyId);
GenerateTelegrams::generateConnectResponseMessage(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExAnmeldebestaetigung::testExAnmeldebestaetigung()
{
qDebug() << "--------------------------------";
qDebug() << "--- EX-Anmeldebestaetigung ---";
QString connectMessage = generateAnmeldebestaetigung();
qDebug() << connectMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(connectMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::AnBestaetigungsdaten anBestaetigungsdaten;
}
@@ -0,0 +1,27 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExAnmeldebestaetigung : public QObject {
Q_OBJECT
public:
TestExAnmeldebestaetigung();
QString generateAnmeldebestaetigung();
private slots:
void testExAnmeldebestaetigung();
private:
int m_partyId {0};
int m_saaId {0};
};
@@ -0,0 +1,72 @@
#include "ex_anmeldung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExAnmeldung::TestExAnmeldung()
{
}
// Text Message received: {
// "data": {
// "adlerVerbund": true,
// "partyId": 2,
// "szenar": "UI Test"
// },
// "reciver": "EXCON@GUEZ.DE",
// "referenceUuid": "",
// "sender": "SAA@GUEZ.DE",
// "timestamp": {
// "jahr": 2025,
// "minuten": 56,
// "monat": 3,
// "sekunden": 9,
// "stunden": 12,
// "tag": 18,
// "zdm": "ZDM",
// "zds": "ZDS",
// "zvz": "ZVz"
// },
// "typeId": 1,
// "typeName": "EX-Anmeldung",
// "uuid": "{30eb8761-7d1b-4e37-8a51-6c1995be9825}",
// "version": ""
// }
QString TestExAnmeldung::generateConnectMessage()
{
AdlerJson::EXRegistration req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateConnectMessage(req, m_partyId);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExAnmeldung::testExAnmeldung()
{
qDebug() << "----------------------";
qDebug() << "--- EX-Anmeldung ---";
QString connectMessage = generateConnectMessage();
QJsonDocument jsonDoc = QJsonDocument::fromJson(connectMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Anmeldedaten anmeldedaten;
bool bOk;
AdlerJson::anmeldedatenFromJson(dataObj, anmeldedaten, bOk);
QCOMPARE(anmeldedaten.partyId, m_partyId );
QCOMPARE(anmeldedaten.adlerVerbund, true);
QCOMPARE(anmeldedaten.szenar, QStringLiteral("UI Test") );
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExAnmeldung : public QObject {
Q_OBJECT
public:
TestExAnmeldung();
QString generateConnectMessage();
private slots:
void testExAnmeldung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_aq_freitext.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExAqFreitextmeldung::TestExAqFreitextmeldung()
{
}
QString TestExAqFreitextmeldung::generateFreitextmeldung()
{
AdlerJson::ExAqFreitextmeldung req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFreitextmeldung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExAqFreitextmeldung::testExAqFreitextmeldung()
{
qDebug() << "-----------------------------";
qDebug() << "--- EX-AQ Freitextmeldung ---";
QString freitextMessage = generateFreitextmeldung();
qDebug() << "EX-AQ Freitextmeldung=" << freitextMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(freitextMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExAqFreitextmeldung exAqFreitextmeldung;
bool bOk;
AdlerJson::FreitextDatenFromJson(dataObj, exAqFreitextmeldung.freitextDaten, bOk);
MsgCompares::compareFreitextDaten(exAqFreitextmeldung.freitextDaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExAqFreitextmeldung : public QObject {
Q_OBJECT
public:
TestExAqFreitextmeldung();
QString generateFreitextmeldung();
private slots:
void testExAqFreitextmeldung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,39 @@
#include "ex_erkundungsanfrage.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExFqErkundungsanfrage::TestExFqErkundungsanfrage()
{
}
QString TestExFqErkundungsanfrage::generateErkundungsanfrage()
{
AdlerJson::ExErkundungsanfrage req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateErkundungsanfrage(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqErkundungsanfrage::testExFqErkundungsanfrage()
{
qDebug() << "-----------------------------------------------------------";
qDebug() << "--- EX-Erkundungsanfrage - Anfrage Erkundungsergebnisse ---";
QString erkundungsanfrageMessage = generateErkundungsanfrage();
qDebug() << "generateErkundungsanfrage=" << erkundungsanfrageMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(erkundungsanfrageMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerkampfdaten feuerkampfdaten;
qDebug() << "Nur Header, kein Data-Bereich => keine Q-Compares fuer den Data-Bereich";
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExFqErkundungsanfrage : public QObject {
Q_OBJECT
public:
TestExFqErkundungsanfrage();
QString generateErkundungsanfrage();
private slots:
void testExFqErkundungsanfrage();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,59 @@
#include "ex_erkundungsergebnisse.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExErkundungsergebnisse::TestExErkundungsergebnisse()
{
}
QString TestExErkundungsergebnisse::generateErkundungsergebnisse()
{
AdlerJson::ExErkundungsergebnisse req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateErkundungsergebnisse(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExErkundungsergebnisse::testExErkundungsergebnisse()
{
qDebug() << "-------------------------------------------------------------";
qDebug() << "--- EX-Erkundungsergebnisse - Senden Erkundungsergebnisse ---";
QString erkundungsergebnisseMessage = generateErkundungsergebnisse();
qDebug() << "erkundungsergebnisseMessage=" << erkundungsergebnisseMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(erkundungsergebnisseMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExErkundungsergebnisse erkundungsergebnisse;
bool bOk;
AdlerJson::erkundungsdatenFromJson(dataObj, erkundungsergebnisse.erkundungsdaten, bOk);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.einheit.r,5);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.einheit.verein, QStringLiteral("verein Erkundungsdaten"));
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.hoehe, 55);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.koordinate.latitude, 53.37790);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.koordinate.longitude, 8.758);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze.size(), 2);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].hoehe, 56);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].koordinate.longitude, 8.759);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].koordinate.latitude, 53.37791);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].hoehe, 57);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].koordinate.longitude, 8.760);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].koordinate.latitude, 53.37792);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.grundrichtung, 33);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.links, 44);
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.rechts, 55);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExErkundungsergebnisse : public QObject {
Q_OBJECT
public:
TestExErkundungsergebnisse();
QString generateErkundungsergebnisse();
private slots:
void testExErkundungsergebnisse();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_fh_feuerhalt.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExFeuerhalt::TestExFeuerhalt()
{
}
QString TestExFeuerhalt::generateFeuerhalt()
{
AdlerJson::ExFeuerhalt req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFeuerhalt(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFeuerhalt::testExFeuerhalt()
{
qDebug() << "------------------------";
qDebug() << "--- EX-FH Feuer HALT ---";
QString feuerhaltMessage = generateFeuerhalt();
qDebug() << "feuerhaltMessage=" << feuerhaltMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerhaltMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::FeuerHaltDaten feuerHaltDaten;
bool bOk;
AdlerJson::feuerHaltDatenFromJson(dataObj, feuerHaltDaten, bOk);
MsgCompares::compareFeuerHaltDaten(feuerHaltDaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFeuerhalt : public QObject {
Q_OBJECT
public:
TestExFeuerhalt();
QString generateFeuerhalt();
private slots:
void testExFeuerhalt();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,44 @@
#include "ex_flugbahnberechnung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExFlugbahnberechnung::TestExFlugbahnberechnung()
{
}
QString TestExFlugbahnberechnung::generateFlugbahnberechnung()
{
AdlerJson::ExFlugbahnberechnung req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFlugbahnberechnung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFlugbahnberechnung::testExFlugbahnberechnung()
{
qDebug() << "-----------------------------";
qDebug() << "--- EX-Flugbahnberechnung ---";
QString flugbahnberechnungMessage = generateFlugbahnberechnung();
qDebug() << "EX-Flugbahnberechnung=" << flugbahnberechnungMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(flugbahnberechnungMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExFlugbahnberechnung exFlugbahnberechnung;
bool bOk;
AdlerJson::exFlugbahnberechnungDatenFromJson(dataObj, exFlugbahnberechnung.flugbahnberechnungDaten, bOk);
MsgCompares::compareFlugbahnberechnungDaten(exFlugbahnberechnung.flugbahnberechnungDaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExFlugbahnberechnung : public QObject {
Q_OBJECT
public:
TestExFlugbahnberechnung();
QString generateFlugbahnberechnung();
private slots:
void testExFlugbahnberechnung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,44 @@
#include "ex_flugbahndaten.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExFlugbahndaten::TestExFlugbahndaten()
{
}
QString TestExFlugbahndaten::generateFlugbahndaten()
{
AdlerJson::ExFlugbahndaten req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFlugbahndaten(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFlugbahndaten::testExFlugbahndaten()
{
qDebug() << "-----------------------------";
qDebug() << "--- EX-Flugbahndaten ---";
QString flugbahndatenMessage = generateFlugbahndaten();
qDebug() << "EX-Flugbahndaten=" << flugbahndatenMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(flugbahndatenMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExFlugbahndaten exFlugbahndaten;
bool bOk;
AdlerJson::flugbahndatenFromJson(dataObj, exFlugbahndaten.flugbahndaten, bOk);
MsgCompares::compareFlugbahndaten(exFlugbahndaten.flugbahndaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExFlugbahndaten : public QObject {
Q_OBJECT
public:
TestExFlugbahndaten();
QString generateFlugbahndaten();
private slots:
void testExFlugbahndaten();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,47 @@
#include "ex_fq_abgefeuert.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExFqAbgefeuert::TestExFqAbgefeuert()
{
}
QString TestExFqAbgefeuert::generateAbgefeuertMessage()
{
AdlerJson::ExAbgefeuert req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateAbgefeuert(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqAbgefeuert::testExFqAbgefeuert()
{
qDebug() << "---------------------------------------";
qDebug() << "--- EX-FQ(AF) Abgefeuert ---";
QString abgefeuertMessage = generateAbgefeuertMessage();
qDebug() << "abgefeuertMessage=" << abgefeuertMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(abgefeuertMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerkampfdaten feuerkampfdaten;
bool bOk;
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqAbgefeuert : public QObject {
Q_OBJECT
public:
TestExFqAbgefeuert();
QString generateAbgefeuertMessage();
private slots:
void testExFqAbgefeuert();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,47 @@
#include "ex_fq_feuerbereit.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExFqFeuerbereit::TestExFqFeuerbereit()
{
}
QString TestExFqFeuerbereit::generateFeuerbereitMessage()
{
AdlerJson::ExFeuerbereit req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFeuerbereit(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqFeuerbereit::testExFqFeuerbereit()
{
qDebug() << "---------------------------------------";
qDebug() << "--- EX-FQ(FB) Feuerbereit ---";
QString feuerbereitMessage = generateFeuerbereitMessage();
qDebug() << "feuerbereitMessage=" << feuerbereitMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerbereitMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerkampfdaten feuerkampfdaten;
bool bOk;
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqFeuerbereit : public QObject {
Q_OBJECT
public:
TestExFqFeuerbereit();
QString generateFeuerbereitMessage();
private slots:
void testExFqFeuerbereit();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,38 @@
#include "ex_fq_feuerkampf.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExFqFeuerkampf::TestExFqFeuerkampf()
{
}
QString TestExFqFeuerkampf::generateFeuerkampf()
{
AdlerJson::ExFeuerkampf req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFeuerkampf(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqFeuerkampf::testExFqFeuerkampf()
{
qDebug() << "-------------------------------";
qDebug() << "--- EX-FQ(BA-BB) Feuerkampf ---";
QString feuerkampfMessage = generateFeuerkampf();
qDebug() << "feuerkampfMessage=" << feuerkampfMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerkampfMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqFeuerkampf : public QObject {
Q_OBJECT
public:
TestExFqFeuerkampf();
QString generateFeuerkampf();
private slots:
void testExFqFeuerkampf();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,47 @@
#include "ex_fq_feuern.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExFqFeuern::TestExFqFeuern()
{
}
QString TestExFqFeuern::generateFeuernMessage()
{
AdlerJson::ExFeuern req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFeuern(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqFeuern::testExFqFeuern()
{
qDebug() << "---------------------------------------";
qDebug() << "--- EX-FQ(FN) Feuern ---";
QString feuernMessage = generateFeuernMessage();
qDebug() << "feuerbereitMessage=" << feuernMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuernMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerkampfdaten feuerkampfdaten;
bool bOk;
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqFeuern : public QObject {
Q_OBJECT
public:
TestExFqFeuern();
QString generateFeuernMessage();
private slots:
void testExFqFeuern();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,48 @@
#include "ex_fq_vollzugsmeldung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExFqVollzugsmeldung::TestExFqVollzugsmeldung()
{
}
QString TestExFqVollzugsmeldung::generateVollzugsmeldungMessage()
{
AdlerJson::ExVollzugsmeldung req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateVollzugsmeldung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqVollzugsmeldung::testExFqVollzugsmeldung()
{
qDebug() << "---------------------------------------";
qDebug() << "--- EX-FQ(VM) Vollzugsmeldung ---";
QString vollzugsmeldungMessage = generateVollzugsmeldungMessage();
qDebug() << "generateVollzugsmeldungMessage=" << vollzugsmeldungMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(vollzugsmeldungMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerkampfdaten feuerkampfdaten;
bool bOk;
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
qDebug() << "L27_EffectorId=" << AdlerJson::waffensystemkennerMap.key(feuerkampfdaten.kenner);
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqVollzugsmeldung : public QObject {
Q_OBJECT
public:
TestExFqVollzugsmeldung();
QString generateVollzugsmeldungMessage();
private slots:
void testExFqVollzugsmeldung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,59 @@
#include "ex_fq_wirkfeldplanung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExFqWirkfeldplanung::TestExFqWirkfeldplanung()
{
}
QString TestExFqWirkfeldplanung::generateWirkfeldplanungMessage()
{
AdlerJson::ExAwesPlanning req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateEXFQBABBFK(req);
req.wirkfeldplanungData.feuerkampfReferenz = QStringLiteral("REF:2078669041");
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExFqWirkfeldplanung::testExFqWirkfeldplanung()
{
qDebug() << "---------------------------------------";
qDebug() << "--- EX-FQ(BA-BB-FK) Wirkfeldplanung ---";
QString wirkfeldplanungMessage = generateWirkfeldplanungMessage();
qDebug() << "wirkfeldplanungMessage= " << wirkfeldplanungMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(wirkfeldplanungMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::WirkfeldplanungData wirkfeldplanungData;
bool bOk;
AdlerJson::wirkfeldplanungDataFromJson(dataObj, wirkfeldplanungData, bOk);
QString messageFromJson = QString::fromUtf8(QJsonDocument(dataObj).toJson());
qDebug() << "wirkfeldplanungMessage From Json= " << messageFromJson;
QCOMPARE(wirkfeldplanungData.feuerkampfReferenz, QStringLiteral("REF:2078669041") );
MsgCompares::compareZieldaten(wirkfeldplanungData.zieldaten);
QCOMPARE(wirkfeldplanungData.abfeuerungsArt, AdlerJson::Abfeuerungsart::A);
QCOMPARE(wirkfeldplanungData.forderung, ProjectDataManagement::L7_Request::VER);
QCOMPARE(wirkfeldplanungData.dauer, 30);
qDebug() << "--- Feuerkommandos: ---";
MsgCompares::compareFeuerkommando(wirkfeldplanungData.feuerkommando);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExFqWirkfeldplanung : public QObject {
Q_OBJECT
public:
TestExFqWirkfeldplanung();
QString generateWirkfeldplanungMessage();
private slots:
void testExFqWirkfeldplanung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_hq_fuehrungslinien.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExHqFuehrungslinien::TestExHqFuehrungslinien()
{
}
QString TestExHqFuehrungslinien::generateFuehrungslinien()
{
AdlerJson::ExHqFuehrungslinien req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateFuehrungslinien(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExHqFuehrungslinien::testExHqFuehrungslinien()
{
qDebug() << "-------------------------------------------";
qDebug() << "--- EX-HQ(G) Fuehrungslinien und Grenzen ---";
QString fuehrungslinienMessage = generateFuehrungslinien();
qDebug() << "EX-HQ(G) Fuehrungslinien und Grenzen=" << fuehrungslinienMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(fuehrungslinienMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExHqFuehrungslinien exHqFuehrungslinien;
bool bOk;
AdlerJson::fuehrungsdatenFromJson(dataObj, exHqFuehrungslinien.fuehrungsdaten, bOk);
MsgCompares::compareFuehrungsdaten(exHqFuehrungslinien.fuehrungsdaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExHqFuehrungslinien : public QObject {
Q_OBJECT
public:
TestExHqFuehrungslinien();
QString generateFuehrungslinien();
private slots:
void testExHqFuehrungslinien();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_hq_koordinierungsmassnahmen.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExHqKoordinierungsmassnahmen::TestExHqKoordinierungsmassnahmen()
{
}
QString TestExHqKoordinierungsmassnahmen::generateKoordinierungsmassnahmen()
{
AdlerJson::ExHqKoordinierungsmassnahmen req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateKoordinierungsmassnahmen(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen()
{
qDebug() << "-----------------------------------------";
qDebug() << "--- EX-HQ(K) Koordinierungsmassnahmen ---";
QString koordinierungsmassnahmenMessage = generateKoordinierungsmassnahmen();
qDebug() << "EX-HQ(K) Koordinierungsmassnahmen=" << koordinierungsmassnahmenMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(koordinierungsmassnahmenMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExHqKoordinierungsmassnahmen exHqKoordinierungsmassnahmen;
bool bOk;
AdlerJson::koordinierungsdatenFromJson(dataObj, exHqKoordinierungsmassnahmen.koordinierungsdaten, bOk);
MsgCompares::compareKoordinierungsdaten(exHqKoordinierungsmassnahmen.koordinierungsdaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExHqKoordinierungsmassnahmen : public QObject {
Q_OBJECT
public:
TestExHqKoordinierungsmassnahmen();
QString generateKoordinierungsmassnahmen();
private slots:
void testExHqKoordinierungsmassnahmen();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,44 @@
#include "ex_mq_manuelle_quittung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExMqManuelleQuittung::TestExMqManuelleQuittung()
{
}
QString TestExMqManuelleQuittung::generateManuelleQuittung()
{
AdlerJson::ExMqManuelleQuittung req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateManuelleQuittung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExMqManuelleQuittung::testExMqManuelleQuittung()
{
qDebug() << "-------------------------------";
qDebug() << "--- EX-MQ Manuelle Quittung ---";
QString manuelleQuittungMessage = generateManuelleQuittung();
qDebug() << "EX-MQ Manuelle Quittung=" << manuelleQuittungMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(manuelleQuittungMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExMqManuelleQuittung exMqManuelleQuittung;
bool bOk;
AdlerJson::mqManuelleQuittungDatenFromJson(dataObj, exMqManuelleQuittung.mqManuelleQuittungDaten, bOk);
MsgCompares::compareManuelleQuittungDaten(exMqManuelleQuittung.mqManuelleQuittungDaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExMqManuelleQuittung : public QObject {
Q_OBJECT
public:
TestExMqManuelleQuittung();
QString generateManuelleQuittung();
private slots:
void testExMqManuelleQuittung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_sq_stellungsmeldung_fs.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExStellungsmeldungFS::TestExStellungsmeldungFS()
{
}
QString TestExStellungsmeldungFS::generateStellungFS()
{
AdlerJson::ExFeuerstellungFS req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateStellungsmeldungFS(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExStellungsmeldungFS::testExStellungsmeldungFS()
{
qDebug() << "------------------------------------------------";
qDebug() << "--- EX-SQ(FS) Stellungsmeldung Feuerstellung ---";
QString stellungFSMessage = generateStellungFS();
qDebug() << "EX-SQ(FS) Stellungsmeldung Feuerstellung=" << stellungFSMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungFSMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Feuerstellungsdaten feuerstellungsdaten;
bool bOk;
AdlerJson::feuerstellungsdatenFromJson(dataObj, feuerstellungsdaten, bOk);
MsgCompares::compareFeuerstellungsdaten(feuerstellungsdaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExStellungsmeldungFS : public QObject {
Q_OBJECT
public:
TestExStellungsmeldungFS();
QString generateStellungFS();
private slots:
void testExStellungsmeldungFS();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_sq_stellungsmeldung_lp.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExStellungsmeldungLP::TestExStellungsmeldungLP()
{
}
QString TestExStellungsmeldungLP::generateStellungLP()
{
AdlerJson::ExFeuerstellungLP req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateStellungsmeldungLP(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExStellungsmeldungLP::testExStellungsmeldungLP()
{
qDebug() << "--------------------------------------------";
qDebug() << "--- EX-SQ(LP) Stellungsmeldung Ladeplatz ---";
QString stellungLPMessage = generateStellungLP();
qDebug() << "EX-SQ(LP) Stellungsmeldung Ladeplatz=" << stellungLPMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungLPMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Ladeplatzdaten ladeplatzdaten;
bool bOk;
AdlerJson::ladeplatzdatenFromJson(dataObj, ladeplatzdaten, bOk);
MsgCompares::compareLadeplatzdaten(ladeplatzdaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExStellungsmeldungLP : public QObject {
Q_OBJECT
public:
TestExStellungsmeldungLP();
QString generateStellungLP();
private slots:
void testExStellungsmeldungLP();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,46 @@
#include "ex_sq_stellungsmeldung_ws.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExStellungsmeldungWS::TestExStellungsmeldungWS()
{
}
QString TestExStellungsmeldungWS::generateStellungWS()
{
AdlerJson::ExFeuerstellungWS req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateStellungsmeldungWS(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExStellungsmeldungWS::testExStellungsmeldungWS()
{
qDebug() << "------------------------------------------------";
qDebug() << "--- EX-SQ(WS) Stellungsmeldung Waffensystem ---";
QString stellungWSMessage = generateStellungWS();
qDebug() << "EX-SQ(WS) Stellungsmeldung Waffensystem=" << stellungWSMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungWSMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Waffensystemdaten waffensystemdaten;
bool bOk;
AdlerJson::waffensystemdatenFromJson(dataObj, waffensystemdaten, bOk);
MsgCompares::compareWaffensystemdaten(waffensystemdaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExStellungsmeldungWS : public QObject {
Q_OBJECT
public:
TestExStellungsmeldungWS();
QString generateStellungWS();
private slots:
void testExStellungsmeldungWS();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,47 @@
#include "ex_sq_stellungswechsel.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExStellungswechsel::TestExStellungswechsel()
{
}
QString TestExStellungswechsel::generateStellungswechsel()
{
AdlerJson::ExStellungswechsel req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateStellungswechsel(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExStellungswechsel::testExStellungswechsel()
{
qDebug() << "---------------------------";
qDebug() << "--- EX-Stellungswechsel ---";
QString stellungswechselMessage = generateStellungswechsel();
qDebug() << "EX-Stellungswechsel=" << stellungswechselMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungswechselMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::Stellungswechseldaten stellungswechseldaten;
bool bOk;
AdlerJson::stellungswechseldatenFromJson(dataObj, stellungswechseldaten, bOk);
MsgCompares::compareStellungswechseldaten(stellungswechseldaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExStellungswechsel : public QObject {
Q_OBJECT
public:
TestExStellungswechsel();
QString generateStellungswechsel();
private slots:
void testExStellungswechsel();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,70 @@
#include "ex_status.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include <AdlerJson/generatetelegrams.h>
TestExStatus::TestExStatus()
{
}
// Text Message received: {
// "data": {
// "adlerVerbund": true,
// "partyId": 2,
// "szenar": "UI Test"
// },
// "reciver": "EXCON@GUEZ.DE",
// "referenceUuid": "",
// "sender": "SAA@GUEZ.DE",
// "timestamp": {
// "jahr": 2025,
// "minuten": 56,
// "monat": 3,
// "sekunden": 9,
// "stunden": 12,
// "tag": 18,
// "zdm": "ZDM",
// "zds": "ZDS",
// "zvz": "ZVz"
// },
// "typeId": 1,
// "typeName": "EX-Anmeldung",
// "uuid": "{30eb8761-7d1b-4e37-8a51-6c1995be9825}",
// "version": ""
// }
QString TestExStatus::generateStatusMessage()
{
AdlerJson::EXStatus req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateStatusMessage(req, AdlerJson::Szenarstatus::Aktiv);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
qDebug() << "message=" << message;
qCritical().noquote() << "message=" << message;
return message;
}
void TestExStatus::testExStatus()
{
qDebug() << "----------------------------";
qDebug() << "--- EX-Status ---";
QString statusMessage = generateStatusMessage();
QJsonDocument jsonDoc = QJsonDocument::fromJson(statusMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::EXStatus status;
bool bOk;
AdlerJson::statusFromJson(dataObj, status, bOk);
QCOMPARE(status.status, AdlerJson::Szenarstatus::Aktiv );
}
@@ -0,0 +1,23 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
enum class Szenarstatus;
}
class TestExStatus : public QObject {
Q_OBJECT
public:
TestExStatus();
QString generateStatusMessage();
private slots:
void testExStatus();
private:
int m_saaId {0};
};
@@ -0,0 +1,46 @@
#include "ex_tq_technische_quittung.h"
#include <QJsonDocument>
#include <QtTest/QTest>
#include <QJsonDocument>
#include <AdlerJson/telegrams.h>
#include "msgcompares.h"
#include <AdlerJson/generatetelegrams.h>
TestExTqTechnischeQuittung::TestExTqTechnischeQuittung()
{
}
QString TestExTqTechnischeQuittung::generateTechnischeQuittung()
{
AdlerJson::ExTqTechnischeQuittung req;
GenerateTelegrams::addHeaderData(req, m_saaId);
GenerateTelegrams::generateTechnischeQuittung(req);
QJsonObject messageObj =req.toJson();
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
return message;
}
void TestExTqTechnischeQuittung::testExTqTechnischeQuittung()
{
qDebug() << "------------------------------------";
qDebug() << "--- EX-TQ Technische Quittierung ---";
QString fuehrungslinienMessage = generateTechnischeQuittung();
qDebug() << "EX-TQ Technische Quittierung=" << fuehrungslinienMessage;
QJsonDocument jsonDoc = QJsonDocument::fromJson(fuehrungslinienMessage.toUtf8());
const QJsonObject jsonObj = jsonDoc.object();
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
AdlerJson::ExTqTechnischeQuittung exTqTechnischeQuittung;
bool bOk;
AdlerJson::technischeDatenFromJson(dataObj, exTqTechnischeQuittung.technischeDaten, bOk);
MsgCompares::compareTechnischeDaten(exTqTechnischeQuittung.technischeDaten);
}
@@ -0,0 +1,26 @@
#pragma once
#include<QString>
#include <QtTest/QTest>
namespace AdlerJson {
struct EXTelegramBase;
//enum class Szenarstatus;
}
class TestExTqTechnischeQuittung : public QObject {
Q_OBJECT
public:
TestExTqTechnischeQuittung();
QString generateTechnischeQuittung();
private slots:
void testExTqTechnischeQuittung();
private:
int m_partyId {0};
int m_saaId {1};
};
@@ -0,0 +1,329 @@
#include "msgcompares.h"
#include "../telegrams.h"
#include <QtTest/QTest>
MsgCompares::MsgCompares()
{
}
void MsgCompares::compareZieldaten(const AdlerJson::Zieldaten& zieldaten)
{
qDebug() << "--- Begin compareZieldaten EX-L12 ---";
QCOMPARE(zieldaten.nummer, 7);
QCOMPARE(zieldaten.geometrie, ProjectDataManagement::L4_TargetGeometry::Point);
qDebug() << "--- koordinate ---";
QCOMPARE(zieldaten.koordinate.hoehe, 0);
QCOMPARE(zieldaten.koordinate.koordinate.latitude, 53.0672);
QCOMPARE(zieldaten.koordinate.koordinate.longitude, 8.86687);
qDebug() << "--- relativKoordinate ---";
QCOMPARE(zieldaten.relativKoordinate.hoehe, 5);
QCOMPARE(zieldaten.relativKoordinate.koordinate.latitude, 53.8);
QCOMPARE(zieldaten.relativKoordinate.koordinate.longitude, 8.8);
QCOMPARE(zieldaten.breiteRadius, 25);
QCOMPARE(zieldaten.tiefe, 26);
QCOMPARE(zieldaten.zielachse, 17);
QCOMPARE(zieldaten.zog, 7);
QCOMPARE(zieldaten.elemente, 1);
QCOMPARE(zieldaten.typ, QStringLiteral("PERS"));
QCOMPARE(zieldaten.subTyp, QStringLiteral("APERS"));
qDebug() << "--- End compareZieldaten EX-L12 ---";
}
void MsgCompares::compareFlugbahnpunkt0(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
{
QCOMPARE(flugbahnpunkt.xRelativ, 200.0);
QCOMPARE(flugbahnpunkt.yRelativ, 77.0);
QCOMPARE(flugbahnpunkt.zRelativ, 300.0);
QCOMPARE(flugbahnpunkt.zeit, 17.0);
}
void MsgCompares::compareFlugbahnpunkt1(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
{
QCOMPARE(flugbahnpunkt.xRelativ, 900.0);
QCOMPARE(flugbahnpunkt.yRelativ, 177.0);
QCOMPARE(flugbahnpunkt.zRelativ, 700.0);
QCOMPARE(flugbahnpunkt.zeit, 19.0);
}
void MsgCompares::compareStreuung(const AdlerJson::Streuungsdaten &streuung)
{
QCOMPARE(streuung.seitenstreuungH, 0.7);
QCOMPARE(streuung.laengsstreuungH, 0.3);
QCOMPARE(streuung.seitenstreuung, 0.7);
QCOMPARE(streuung.laengsstreuung, 7.7);
}
void MsgCompares::compareFeuerkommando(const AdlerJson::Feuerkommando &feuerkommando)
{
//QCOMPARE(feuerkommando.verein, QStringLiteral("AB7X"));
QCOMPARE(feuerkommando.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
qDebug() << "feuerkommando.wirkmittel.size=" << feuerkommando.wirkmittel.size();
AdlerJson::WirkmittelFeuerkommando wfk = feuerkommando.wirkmittel[0];
QCOMPARE(wfk.kenner, ProjectDataManagement::L27_EffectorId::B1);
AdlerJson::KoordinateMitHoehe ap = wfk.auftreffpunkt;
QCOMPARE(ap.hoehe, 0);
QCOMPARE(ap.koordinate.latitude, 53.0672);
QCOMPARE(ap.koordinate.longitude, 8.86687);
QCOMPARE(wfk.flugzeit, 30);
QCOMPARE(wfk.gipfelhoehe, 377);
QCOMPARE(wfk.schussrichtung, 177);
compareFlugbahnpunkt0(wfk.flugbahnpunkt[0]);
compareFlugbahnpunkt1(wfk.flugbahnpunkt[1]);
compareStreuung(wfk.streuung);
MsgCompares::compareFeuerkommandoGeschosse(wfk.geschoss);
compareWirkmittelFeuerkommandoRakete (feuerkommando.wirkmittelRakete);
}
void MsgCompares::compareWirkmittelFeuerkommandoRakete(const QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs)
{
qDebug() << "compareFeuerkommando Rakete"
<< ", wfrs.size=" << wfrs.size()
<< ", wfrs[0].treffpunkte,size=" << wfrs[0].treffpunkte.size();
AdlerJson::Treffpunkt treffpunkt = wfrs[0].treffpunkte[0];
QCOMPARE (treffpunkt.anzahl, 1);
QCOMPARE (treffpunkt.koordinate.koordinate.latitude , 5.5);
QCOMPARE (treffpunkt.koordinate.koordinate.longitude, 6.6);
QCOMPARE (treffpunkt.koordinate.hoehe, 7);
QCOMPARE (wfrs[0].kenner , ProjectDataManagement::L27_EffectorId::B1);
QCOMPARE (wfrs[0].flugzeit, 456.3);
QCOMPARE (wfrs[0].gipfelhoehe, 300);
QCOMPARE (wfrs[0].schussrichtung, 30.0);
QCOMPARE (wfrs[0].fallwinkel, 5);
QCOMPARE (wfrs[0].anflug, ProjectDataManagement::L48_TrajectoryRocket::Nominal);
}
void MsgCompares::compareFeuerkommandoGeschosse(const AdlerJson::FeuerkommandoGeschosse &feuerkommandoGeschosse)
{
QCOMPARE(feuerkommandoGeschosse.geschosssorte, QStringLiteral("Mine DM72"));
QCOMPARE(feuerkommandoGeschosse.ladung, QStringLiteral("M DM72"));
QCOMPARE(feuerkommandoGeschosse.zuender, QStringLiteral("Aufschlag BB DM371"));
QCOMPARE(feuerkommandoGeschosse.zuenderFunktion, QStringLiteral("AZoV"));
QCOMPARE(feuerkommandoGeschosse.zuenderZeit, 0);
QCOMPARE(feuerkommandoGeschosse.anzahl, 7);
QCOMPARE(feuerkommandoGeschosse.intervall, 1.0);
}
void MsgCompares::compareFeuerHaltDaten(const AdlerJson::FeuerHaltDaten &feuerHaltDaten)
{
QCOMPARE(feuerHaltDaten.kategorie, ProjectDataManagement::L22_FireHaltCategory::E);
QCOMPARE(feuerHaltDaten.feuerkampfReferenz, QStringLiteral("feuerHaltDaten"));
QCOMPARE(feuerHaltDaten.zpNummer, 5);
QCOMPARE(feuerHaltDaten.koordinate.latitude, 53.37791);
QCOMPARE(feuerHaltDaten.koordinate.longitude, 8.759);
QCOMPARE(feuerHaltDaten.radius, 50);
}
void MsgCompares::compareFeuerstellungsdatenKoordinaten(const QVector<AdlerJson::KoordinateMitHoehe> &koordinaten)
{
QCOMPARE(koordinaten[0].hoehe, 22);
QCOMPARE(koordinaten[0].koordinate.latitude, 53.37792);
QCOMPARE(koordinaten[0].koordinate.longitude, 8.760);
QCOMPARE(koordinaten[1].hoehe, 23);
QCOMPARE(koordinaten[1].koordinate.latitude, 53.37793);
QCOMPARE(koordinaten[1].koordinate.longitude, 8.761);
}
void MsgCompares::compareGeschosse(const QVector<AdlerJson::Geschoss> &geschosse)
{
QCOMPARE(geschosse[0].geschosssorte, QStringLiteral("Mine DM72"));
QCOMPARE(geschosse[0].zuender, QStringLiteral("Doppel DM183"));
QCOMPARE(geschosse[0].ladung, QStringLiteral("M DM72"));
QCOMPARE(geschosse[0].anzahl, 6);
QCOMPARE(geschosse[1].geschosssorte, QStringLiteral("Leucht DM116"));
QCOMPARE(geschosse[1].ladung, QStringLiteral("B L8A1"));
QCOMPARE(geschosse[1].zuender, QStringLiteral("Aufschlag BB DM371"));
QCOMPARE(geschosse[1].anzahl, 7);
}
void MsgCompares::compareFeuerstellungsdaten(const AdlerJson::Feuerstellungsdaten &feuerstellungsdaten)
{
QCOMPARE(feuerstellungsdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(feuerstellungsdaten.status, ProjectDataManagement::L28_Status::Einsatzbereit);
QCOMPARE(feuerstellungsdaten.feuereinheit.verein, QStringLiteral("verein ExFeuerstellungFS"));
QCOMPARE(feuerstellungsdaten.feuereinheit.r, 5);
QCOMPARE(feuerstellungsdaten.feuereinheit.oi, ProjectDataManagement::L19_Oi::F3);
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.latitude, 53.37791);
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.longitude, 8.759);
QCOMPARE(feuerstellungsdaten.mittelpunkt.hoehe, 20);
MsgCompares::compareFeuerstellungsdatenKoordinaten(feuerstellungsdaten.koordinaten);
MsgCompares::compareGeschosse(feuerstellungsdaten.geschosse);
}
void MsgCompares::compareWaffensystemdaten(const AdlerJson::Waffensystemdaten &waffensystemdaten)
{
QCOMPARE(waffensystemdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(waffensystemdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
QCOMPARE(waffensystemdaten.status, ProjectDataManagement::L28_Status::NichtEinsatzbereit);
QCOMPARE(waffensystemdaten.einheit.verein, QStringLiteral("AB7X"));
QCOMPARE(waffensystemdaten.einheit.r, 6);
QCOMPARE(waffensystemdaten.einheit.oi, ProjectDataManagement::L19_Oi::F6);
MsgCompares::compareGeschosse(waffensystemdaten.geschosse);
QCOMPARE(waffensystemdaten.koordinate.koordinate.latitude, 53.088354);
QCOMPARE(waffensystemdaten.koordinate.koordinate.longitude, 8.853092);
QCOMPARE(waffensystemdaten.koordinate.hoehe, 20);
QCOMPARE(waffensystemdaten.wirkungsbereich.grundrichtung, 1);
QCOMPARE(waffensystemdaten.wirkungsbereich.links, 2);
QCOMPARE(waffensystemdaten.wirkungsbereich.rechts, 3);
}
void MsgCompares::compareLadeplatzdaten(const AdlerJson::Ladeplatzdaten &ladeplatzdaten)
{
QCOMPARE(ladeplatzdaten.einheit.oi , ProjectDataManagement::L19_Oi::F3);
QCOMPARE(ladeplatzdaten.einheit.r, 5);
QCOMPARE(ladeplatzdaten.einheit.verein, QStringLiteral("verein StellungsmeldungLP"));
QCOMPARE(ladeplatzdaten.koordinate.koordinate.latitude, 53.37791);
QCOMPARE(ladeplatzdaten.koordinate.koordinate.longitude, 8.759);
QCOMPARE(ladeplatzdaten.koordinate.hoehe, 20);
MsgCompares::compareGeschosse(ladeplatzdaten.geschosse);
}
void MsgCompares::compareStellungswechseldaten(const AdlerJson::Stellungswechseldaten &stellungswechseldaten)
{
QCOMPARE(stellungswechseldaten.oi, ProjectDataManagement::L19_Oi::F3);
QCOMPARE(stellungswechseldaten.r, 5);
QCOMPARE(stellungswechseldaten.verein, QStringLiteral("verein ExStellungswechsel"));
}
void MsgCompares::compareZeitAb(const AdlerJson::Zeitangabe_DTG &zeit)
{
QCOMPARE(zeit.stunden, 5);
QCOMPARE(zeit.minuten, 35);
QCOMPARE(zeit.sekunden, 55);
QCOMPARE(zeit.tag, 12);
QCOMPARE(zeit.monat, 11);
QCOMPARE(zeit.jahr, 2025);
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
}
void MsgCompares::compareZeitBis(const AdlerJson::Zeitangabe_DTG &zeit)
{
QCOMPARE(zeit.stunden, 5);
QCOMPARE(zeit.minuten, 35);
QCOMPARE(zeit.sekunden, 55);
QCOMPARE(zeit.tag, 13);
QCOMPARE(zeit.monat, 11);
QCOMPARE(zeit.jahr, 2025);
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
}
void MsgCompares::compareKoordinaten(const QVector<AdlerJson::Koordinate> &koordinaten)
{
QCOMPARE ( koordinaten[0].latitude, 53.37792 );
QCOMPARE ( koordinaten[0].longitude, 8.760 );
QCOMPARE ( koordinaten[1].latitude, 53.37793 );
QCOMPARE ( koordinaten[1].longitude, 8.761 );
}
void MsgCompares::compareKoordinierungsdaten(const AdlerJson::Koordinierungsdaten &koordinierungsdaten)
{
QCOMPARE(koordinierungsdaten.art, ProjectDataManagement::L25_KindGuidingLine::NFA);
QCOMPARE(koordinierungsdaten.name, QStringLiteral("Name ExHqKoordinierungsmassnahme"));
QCOMPARE(koordinierungsdaten.truppenteil, QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme"));
compareZeitAb(koordinierungsdaten.ab);
compareZeitBis(koordinierungsdaten.bis);
compareKoordinaten(koordinierungsdaten.koordinaten);
QCOMPARE(koordinierungsdaten.mittelpunkt.latitude, 53.37794);
QCOMPARE(koordinierungsdaten.mittelpunkt.longitude, 8.762);
QCOMPARE(koordinierungsdaten.radius, 66);
QCOMPARE(koordinierungsdaten.maxGipfel, 123);
}
void MsgCompares::compareFuehrungsdaten(const AdlerJson::Fuehrungsdaten &fuehrungsdaten)
{
QCOMPARE(fuehrungsdaten.art, AdlerJson::Art_L24::AO);
QCOMPARE(fuehrungsdaten.name, QStringLiteral("Name EX-HQ(G) Führungslinien und Grenzen"));
compareZeitAb(fuehrungsdaten.ab);
compareZeitBis(fuehrungsdaten.bis);
compareKoordinaten(fuehrungsdaten.koordinaten);
QCOMPARE(fuehrungsdaten.linkerNachbar, QStringLiteral("linker Nachbar"));
QCOMPARE(fuehrungsdaten.rechterNachbar, QStringLiteral("rechter Nachbar"));
}
void MsgCompares::compareTechnischeDaten(const AdlerJson::TechnischeDaten &technischeDaten)
{
QCOMPARE(technischeDaten.status, AdlerJson::Status_L32::INV);
QCOMPARE(technischeDaten.beschreibung, QStringLiteral("Beschreibung technischer Status"));
}
void MsgCompares::compareFreitextDaten(const AdlerJson::FreitextDaten &freitextDaten)
{
QCOMPARE(freitextDaten.text, QStringLiteral("Freier Text"));
}
void MsgCompares::compareManuelleQuittungDaten(const AdlerJson::ManuelleQuittungDaten &manuelleQuittungDaten)
{
QCOMPARE(manuelleQuittungDaten.feuerkampfreferenz, QStringLiteral("Manuelle Quittung"));
}
void MsgCompares::compareFlugbahnberechnungDaten(const AdlerJson::FlugBerechnungsDaten &flugbahnberechnungDaten)
{
qDebug() << "compareFlugbahnberechnungDaten 1";
QCOMPARE(flugbahnberechnungDaten.geschoss.geschosssorte, QStringLiteral("SMArt DM702"));
qDebug() << "compareFlugbahnberechnungDaten 2";
QCOMPARE(flugbahnberechnungDaten.geschoss.ladung, QStringLiteral("M DM72"));
QCOMPARE(flugbahnberechnungDaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
QCOMPARE(flugbahnberechnungDaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
qDebug() << "compareFlugbahnberechnungDaten 3";
//QCOMPARE(flugbahnberechnungDaten.geschoss.ladungsNummer, 4);
QCOMPARE(flugbahnberechnungDaten.sprenghoehe, 0);
qDebug() << "compareFlugbahnberechnungDaten 6";
QCOMPARE(flugbahnberechnungDaten.standort.hoehe, 55);
qDebug() << "compareFlugbahnberechnungDaten 7";
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.latitude, 53.37787);
qDebug() << "compareFlugbahnberechnungDaten 8";
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.longitude, 8.7573);
qDebug() << "compareFlugbahnberechnungDaten 9";
QCOMPARE(flugbahnberechnungDaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
qDebug() << "compareFlugbahnberechnungDaten 10";
qDebug() << "winkelgruppe=" << AdlerJson::winkelgruppeMap.key(flugbahnberechnungDaten.winkelgruppe);
QCOMPARE(flugbahnberechnungDaten.winkelgruppe, AdlerJson::Winkelgruppe::Untere);
}
void MsgCompares::compareFlugbahndaten(const AdlerJson::Flugbahndaten &flugbahndaten)
{
qDebug() << "compareFlugbahndaten";
QCOMPARE(flugbahndaten.fehlercode, AdlerJson::FlugbahnberechnungFehlercode::Ok);
qDebug() << "flugbahndaten.zielkoordinate.hoehe = "<< flugbahndaten.zielkoordinate.hoehe;
QCOMPARE(flugbahndaten.zielkoordinate.hoehe, 56);
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.latitude, 52.482048);
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.longitude, 11.583);
QCOMPARE(flugbahndaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(flugbahndaten.flugzeit, 300);
QCOMPARE(flugbahndaten.gipfelhoehe, 200);
QCOMPARE(flugbahndaten.schussrichtung, 45);
QCOMPARE(flugbahndaten.fallwinkel, 55);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zeit, 1);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].xRelativ, 100);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].yRelativ, 200);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zRelativ, 10);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zeit, 2);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].xRelativ, 200);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].yRelativ, 400);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zRelativ, 20);
QCOMPARE(flugbahndaten.streuung.laengsstreuung, 2.2);
QCOMPARE(flugbahndaten.streuung.seitenstreuung, 3.3);
QCOMPARE(flugbahndaten.streuung.laengsstreuungH, 4.4);
QCOMPARE(flugbahndaten.streuung.seitenstreuungH, 5.5);
QCOMPARE(flugbahndaten.geschoss.geschosssorte, QStringLiteral("Spreng DM121"));
QCOMPARE(flugbahndaten.geschoss.ladung, QStringLiteral("M DM72"));
QCOMPARE(flugbahndaten.geschoss.ladungsNummer, 5);
QCOMPARE(flugbahndaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
QCOMPARE(flugbahndaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
QCOMPARE(flugbahndaten.geschoss.zuenderZeit, 1000);
}
@@ -0,0 +1,38 @@
#ifndef MSGCOMPARES_H
#define MSGCOMPARES_H
#include <AdlerJson/telegrams.h>
class MsgCompares
{
public:
MsgCompares();
static void compareZieldaten(const AdlerJson::Zieldaten &zieldaten);
static void compareZielmeldedaten(const AdlerJson::Zielmeldedaten &zielmeldedaten);
static void compareFlugbahnpunkt0(const AdlerJson::Flugbahnpunkt &flugbahnpunkt);
static void compareFlugbahnpunkt1(const AdlerJson::Flugbahnpunkt &flugbahnpunkt);
static void compareStreuung(const AdlerJson::Streuungsdaten &streuung);
static void compareFeuerkommando(const AdlerJson::Feuerkommando &feuerkommando);
static void compareWirkmittelFeuerkommandoRakete(const QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs);
static void compareFeuerkommandoGeschosse(const AdlerJson::FeuerkommandoGeschosse &feuerkommandoGeschosse);
static void compareFeuerHaltDaten(const AdlerJson::FeuerHaltDaten &feuerHaltDaten);
static void compareFeuerstellungsdatenKoordinaten(const QVector<AdlerJson::KoordinateMitHoehe> &koordinaten);
static void compareGeschosse(const QVector<AdlerJson::Geschoss> &geschosse);
static void compareFeuerstellungsdaten(const AdlerJson::Feuerstellungsdaten &feuerstellungsdaten);
static void compareWaffensystemdaten(const AdlerJson::Waffensystemdaten &waffensystemdaten);
static void compareLadeplatzdaten(const AdlerJson::Ladeplatzdaten &ladeplatzdaten);
static void compareStellungswechseldaten(const AdlerJson::Stellungswechseldaten &stellungswechseldaten);
static void compareZeitAb(const AdlerJson::Zeitangabe_DTG &zeit);
static void compareZeitBis(const AdlerJson::Zeitangabe_DTG &zeit);
static void compareKoordinaten(const QVector<AdlerJson::Koordinate> &koordinaten);
static void compareKoordinierungsdaten(const AdlerJson::Koordinierungsdaten &koordinierungsdaten);
static void compareFuehrungsdaten(const AdlerJson::Fuehrungsdaten &fuehrungsdaten);
static void compareTechnischeDaten(const AdlerJson::TechnischeDaten &technischeDaten);
static void compareFreitextDaten(const AdlerJson::FreitextDaten &freitextDaten);
static void compareManuelleQuittungDaten(const AdlerJson::ManuelleQuittungDaten &manuelleQuittungDaten);
static void compareFlugbahnberechnungDaten(const AdlerJson::FlugBerechnungsDaten &flugbahnberechnungDaten);
static void compareFlugbahndaten(const AdlerJson::Flugbahndaten &flugbahndaten);
};
#endif // MSGCOMPARES_H
@@ -0,0 +1,63 @@
#include <QDebug>
#include <nglapplication/nglcoreapplication.h>
#include <QJsonDocument>
#include <QtTest/QTest>
#include <AdlerJson/telegrams.h>
#include "ex_anmeldung.h"
#include "ex_abmeldung.h"
#include "ex_anmeldebestaetigung.h"
#include "ex_status.h"
#include "ex_fq_wirkfeldplanung.h"
#include "ex_fq_feuerbereit.h"
#include "ex_fq_feuern.h"
#include "ex_fq_abgefeuert.h"
#include "ex_fq_vollzugsmeldung.h"
#include "ex_erkundungsanfrage.h"
#include "ex_erkundungsergebnisse.h"
#include "ex_fq_feuerkampf.h"
#include "ex_fh_feuerhalt.h"
#include "ex_sq_stellungsmeldung_fs.h"
#include "ex_sq_stellungsmeldung_ws.h"
#include "ex_sq_stellungsmeldung_lp.h"
#include "ex_sq_stellungswechsel.h"
#include "ex_hq_koordinierungsmassnahmen.h"
#include "ex_hq_fuehrungslinien.h"
#include "ex_tq_technische_quittung.h"
#include "ex_aq_freitext.h"
#include "ex_mq_manuelle_quittung.h"
#include "ex_flugbahnberechnung.h"
#include "ex_flugbahndaten.h"
int main(int argc, char *argv[])
{
int status = 0;
status |= QTest::qExec(new TestExAnmeldung, argc, argv);
status |= QTest::qExec(new TestExAbmeldung, argc, argv);
status |= QTest::qExec(new TestExAnmeldebestaetigung, argc, argv);
status |= QTest::qExec(new TestExStatus, argc, argv);
status |= QTest::qExec(new TestExFqWirkfeldplanung, argc, argv); // EX-FQ(BA-BB-FK) 1000 Wirkfeldplanung
status |= QTest::qExec(new TestExMqManuelleQuittung, argc, argv); // EX-MQ 1001 Manuelle Quittung
status |= QTest::qExec(new TestExFqFeuerbereit, argc, argv); // EX-FQ(FB) 1002 Feuerbereit
status |= QTest::qExec(new TestExFqFeuern, argc, argv); // EX-FQ(FN) 1003 Feuern
status |= QTest::qExec(new TestExFqAbgefeuert, argc, argv); // EX-FQ(AF) 1004 Abgefeuert
status |= QTest::qExec(new TestExFqVollzugsmeldung, argc, argv); // EX-FQ(VM) 1005 Vollzugsmeldung
// status |= QTest::qExec(new TestExFqErkundungsanfrage, argc, argv);
status |= QTest::qExec(new TestExFqFeuerkampf, argc, argv);
status |= QTest::qExec(new TestExFeuerhalt, argc, argv); // EX-FH 1006 Feuer HALT / Einstellen
status |= QTest::qExec(new TestExStellungsmeldungFS, argc, argv); // EX-SQ(FS) 2000 Stellungsmeldung Feuerstellung
status |= QTest::qExec(new TestExStellungsmeldungWS, argc, argv); // EX-SQ(WS) 2001 Stellungsmeldung Waffensystem
status |= QTest::qExec(new TestExStellungsmeldungLP, argc, argv); // EX-SQ(LP) 2002 Stellungsmeldung Ladeplatz
status |= QTest::qExec(new TestExErkundungsergebnisse, argc, argv); // EX-Erkundungsergebnisse 5000 Senden Erkundungsergebnisse
status |= QTest::qExec(new TestExStellungswechsel, argc, argv);
status |= QTest::qExec(new TestExHqKoordinierungsmassnahmen, argc, argv); // EX-HQ(K) 3000 Führungslinien (Koordinierungsmaßnahmen zur Feuerunterstützung)
status |= QTest::qExec(new TestExHqFuehrungslinien, argc, argv); // EX-HQ(G) 3001 Führungslinien und Grenzen
status |= QTest::qExec(new TestExTqTechnischeQuittung, argc, argv);
status |= QTest::qExec(new TestExAqFreitextmeldung, argc, argv); // EX-AQ 5001 Freitextmeldung
status |= QTest::qExec(new TestExFlugbahnberechnung, argc, argv); // EX-Flugbahnberechnung 4001
status |= QTest::qExec(new TestExFlugbahndaten, argc, argv); // EX-Flugbahndaten 4002
return status;
}