Commit 246de5bc authored by Don Gagne's avatar Don Gagne

Add testing for SimpleMissionItem loading

parent 40e8ff49
......@@ -25,6 +25,7 @@
#include "LinkManager.h"
#include "MultiVehicleManager.h"
#include "MissionItem.h"
#include "SimpleMissionItem.h"
#if 0
const MissionItemTest::TestCase_t MissionItemTest::_rgTestCases[] = {
......@@ -236,16 +237,10 @@ void MissionItemTest::_testFactSignals(void)
QCOMPARE(arguments.at(0).toDouble(), 8.0);
}
void MissionItemTest::_testLoadFromStream(void)
void MissionItemTest::_checkExpectedMissionItem(const MissionItem& missionItem)
{
MissionItem missionItem;
QString testString("10\t1\t3\t80\t10\t20\t30\t40\t-10\t-20\t-30\t1\r\n");
QTextStream testStream(&testString, QIODevice::ReadOnly);
QVERIFY(missionItem.load(testStream));
QCOMPARE(missionItem.sequenceNumber(), 10);
QCOMPARE(missionItem.isCurrentItem(), true);
QCOMPARE(missionItem.isCurrentItem(), false);
QCOMPARE(missionItem.frame(), (MAV_FRAME)3);
QCOMPARE(missionItem.command(), (MAV_CMD)80);
QCOMPARE(missionItem.param1(), 10.0);
......@@ -258,6 +253,30 @@ void MissionItemTest::_testLoadFromStream(void)
QCOMPARE(missionItem.autoContinue(), true);
}
void MissionItemTest::_testLoadFromStream(void)
{
MissionItem missionItem;
QString testString("10\t0\t3\t80\t10\t20\t30\t40\t-10\t-20\t-30\t1\r\n");
QTextStream testStream(&testString, QIODevice::ReadOnly);
QVERIFY(missionItem.load(testStream));
_checkExpectedMissionItem(missionItem);
}
void MissionItemTest::_testSimpleLoadFromStream(void)
{
// We specifically test SimpleMissionItem loading as well since it has additional
// signalling which can affect values.
SimpleMissionItem simpleMissionItem(NULL);
QString testString("10\t0\t3\t80\t10\t20\t30\t40\t-10\t-20\t-30\t1\r\n");
QTextStream testStream(&testString, QIODevice::ReadOnly);
QVERIFY(simpleMissionItem.load(testStream));
_checkExpectedMissionItem(simpleMissionItem.missionItem());
}
void MissionItemTest::_testLoadFromJson(void)
{
MissionItem missionItem;
......@@ -335,18 +354,34 @@ void MissionItemTest::_testLoadFromJson(void)
// Test good load
QVERIFY(missionItem.load(jsonObject, errorString));
QCOMPARE(missionItem.sequenceNumber(), 10);
QCOMPARE(missionItem.isCurrentItem(), false);
QCOMPARE(missionItem.frame(), (MAV_FRAME)3);
QCOMPARE(missionItem.command(), (MAV_CMD)80);
QCOMPARE(missionItem.param1(), 10.0);
QCOMPARE(missionItem.param2(), 20.0);
QCOMPARE(missionItem.param3(), 30.0);
QCOMPARE(missionItem.param4(), 40.0);
QCOMPARE(missionItem.param5(), -10.0);
QCOMPARE(missionItem.param6(), -20.0);
QCOMPARE(missionItem.param7(), -30.0);
QCOMPARE(missionItem.autoContinue(), true);
_checkExpectedMissionItem(missionItem);
}
void MissionItemTest::_testSimpleLoadFromJson(void)
{
// We specifically test SimpleMissionItem loading as well since it has additional
// signalling which can affect values.
SimpleMissionItem simpleMissionItem(NULL);
QString errorString;
QJsonArray coordinateArray = { -10.0, -20.0, -30.0 };
QJsonObject jsonObject
{
{ "autoContinue", true },
{ "command", 80 },
{ "frame", 3 },
{ "id", 10 },
{ "param1", 10 },
{ "param2", 20 },
{ "param3", 30 },
{ "param4", 40 },
{ "type", "missionItem" },
{ "coordinate", coordinateArray },
};
QVERIFY(simpleMissionItem.load(jsonObject, errorString));
_checkExpectedMissionItem(simpleMissionItem.missionItem());
}
void MissionItemTest::_testSaveToJson(void)
......
......@@ -26,6 +26,7 @@
#include "UnitTest.h"
#include "MultiSignalSpy.h"
#include "MissionItem.h"
/// Unit test for the MissionItem Object
class MissionItemTest : public UnitTest
......@@ -40,8 +41,13 @@ private slots:
void _testSignals(void);
void _testFactSignals(void);
void _testLoadFromStream(void);
void _testSimpleLoadFromStream(void);
void _testLoadFromJson(void);
void _testSimpleLoadFromJson(void);
void _testSaveToJson(void);
private:
void _checkExpectedMissionItem(const MissionItem& missionItem);
};
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment