#include #include #include "UAS.h" #include "MAVLinkProtocol.h" #include "UASInterface.h" class UASUnitTest : public QObject { Q_OBJECT public: #define UASID 50 MAVLinkProtocol* mav; UAS* uas; UASUnitTest(); private Q_SLOTS: void initTestCase(); void cleanupTestCase(); void getUASID_test(); void getUASName_test(); void getUpTime_test(); void getCommunicationStatus_test(); void filterVoltage_test(); void getAutopilotType_test(); void setAutopilotType_test(); void getStatusForCode_test(); void getLocalX_test(); void getLocalY_test(); void getLocalZ_test(); void getLatitude_test(); void getLongitude_test(); void getAltitude_test(); void getRoll_test(); void getPitch_test(); void getYaw_test(); private: protected: UAS *prueba; }; UASUnitTest::UASUnitTest() { } void UASUnitTest::initTestCase() { mav= new MAVLinkProtocol(); uas=new UAS(mav,UASID); } void UASUnitTest::cleanupTestCase() { delete uas; delete mav; } void UASUnitTest::getUASID_test() { // Test a default ID of zero is assigned UAS* uas2 = new UAS(mav); QCOMPARE(uas2->getUASID(), 0); delete uas2; // Test that the chosen ID was assigned at construction QCOMPARE(uas->getUASID(), UASID); // Make sure that no other ID was sert QEXPECT_FAIL("", "When you set an ID it does not use the default ID of 0", Continue); QCOMPARE(uas->getUASID(), 0); } void UASUnitTest::getUASName_test() { // Test that the name is build as MAV + ID QCOMPARE(uas->getUASName(), "MAV 0" + QString::number(UASID)); } void UASUnitTest::getUpTime_test() { UAS* uas2 = new UAS(mav); // Test that the uptime starts at zero to a // precision of seconds QCOMPARE(floor(uas2->getUptime()/1000.0), 0.0); // Sleep for three seconds QTest::qSleep(3000); // Test that the up time is computed correctly to a // precision of seconds QCOMPARE(floor(uas2->getUptime()/1000.0), 3.0); delete uas2; } void UASUnitTest::getCommunicationStatus_test() { // Verify that upon construction the Comm status is disconnected QCOMPARE(uas->getCommunicationStatus(), static_cast(UASInterface::COMM_DISCONNECTED)); } void UASUnitTest::filterVoltage_test() { float verificar=uas->filterVoltage(0.4f); // Verify that upon construction the Comm status is disconnected QCOMPARE(verificar, 8.52f); } void UASUnitTest:: getAutopilotType_test() { int verificar=uas->getAutopilotType(); // Verify that upon construction the autopilot is set to -1 QCOMPARE(verificar, -1); } void UASUnitTest::setAutopilotType_test() { uas->setAutopilotType(2); // Verify that the autopilot is set QCOMPARE(uas->getAutopilotType(), 2); } void UASUnitTest::getStatusForCode_test() { QString state, desc; state = ""; desc = ""; uas->getStatusForCode(MAV_STATE_UNINIT, state, desc); QVERIFY(state == "UNINIT"); uas->getStatusForCode(MAV_STATE_UNINIT, state, desc); QVERIFY(state == "UNINIT"); uas->getStatusForCode(MAV_STATE_BOOT, state, desc); QVERIFY(state == "BOOT"); uas->getStatusForCode(MAV_STATE_CALIBRATING, state, desc); QVERIFY(state == "CALIBRATING"); uas->getStatusForCode(MAV_STATE_ACTIVE, state, desc); QVERIFY(state == "ACTIVE"); uas->getStatusForCode(MAV_STATE_STANDBY, state, desc); QVERIFY(state == "STANDBY"); uas->getStatusForCode(MAV_STATE_CRITICAL, state, desc); QVERIFY(state == "CRITICAL"); uas->getStatusForCode(MAV_STATE_EMERGENCY, state, desc); QVERIFY(state == "EMERGENCY"); uas->getStatusForCode(MAV_STATE_POWEROFF, state, desc); QVERIFY(state == "SHUTDOWN"); uas->getStatusForCode(5325, state, desc); QVERIFY(state == "UNKNOWN"); } void UASUnitTest::getLocalX_test() { QCOMPARE(uas->getLocalX(), 0.0); } void UASUnitTest::getLocalY_test() { QCOMPARE(uas->getLocalY(), 0.0); } void UASUnitTest::getLocalZ_test() { QCOMPARE(uas->getLocalZ(), 0.0); } void UASUnitTest::getLatitude_test() { QCOMPARE(uas->getLatitude(), 0.0); } void UASUnitTest::getLongitude_test() { QCOMPARE(uas->getLongitude(), 0.0); } void UASUnitTest::getAltitude_test() { QCOMPARE(uas->getAltitude(), 0.0); } void UASUnitTest::getRoll_test() { QCOMPARE(uas->getRoll(), 0.0); } void UASUnitTest::getPitch_test() { QCOMPARE(uas->getPitch(), 0.0); } void UASUnitTest::getYaw_test() { QCOMPARE(uas->getYaw(), 0.0); } QTEST_APPLESS_MAIN(UASUnitTest); #include "tst_uasunittest.moc"