From 246de5bc1878f629488d4f1165b38bca8878c209 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 2 Apr 2016 18:57:39 -0700 Subject: [PATCH] Add testing for SimpleMissionItem loading --- src/MissionManager/MissionItemTest.cc | 75 ++++++++++++++++++++------- src/MissionManager/MissionItemTest.h | 6 +++ 2 files changed, 61 insertions(+), 20 deletions(-) diff --git a/src/MissionManager/MissionItemTest.cc b/src/MissionManager/MissionItemTest.cc index 786f73bf6..ec1b11604 100644 --- a/src/MissionManager/MissionItemTest.cc +++ b/src/MissionManager/MissionItemTest.cc @@ -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) diff --git a/src/MissionManager/MissionItemTest.h b/src/MissionManager/MissionItemTest.h index 01b12f969..bb7084d47 100644 --- a/src/MissionManager/MissionItemTest.h +++ b/src/MissionManager/MissionItemTest.h @@ -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 -- 2.22.0