ComplexMissionItemTest.h 4.12 KB
Newer Older
1 2 3 4 5 6 7 8 9
/****************************************************************************
 *
 *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

10 11 12 13 14 15 16

#ifndef ComplexMissionItemTest_H
#define ComplexMissionItemTest_H

#include "UnitTest.h"
#include "TCPLink.h"
#include "MultiSignalSpy.h"
17
#include "SurveyMissionItem.h"
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

#include <QGeoCoordinate>

/// Unit test for SimpleMissionItem
class ComplexMissionItemTest : public UnitTest
{
    Q_OBJECT
    
public:
    ComplexMissionItemTest(void);

protected:
    void init(void) final;
    void cleanup(void) final;
    
private slots:
    void _testDirty(void);
    void _testAddPolygonCoordinate(void);
    void _testClearPolygon(void);
    void _testCameraTrigger(void);

private:
    enum {
        polygonPathChangedIndex = 0,
        lastSequenceNumberChangedIndex,
        altitudeChangedIndex,
        gridAngleChangedIndex,
        gridPointsChangedIndex,
        cameraTriggerChangedIndex,
        altDifferenceChangedIndex,
        altPercentChangedIndex,
        azimuthChangedIndex,
        commandDescriptionChangedIndex,
        commandNameChangedIndex,
52
        abbreviationChangedIndex,
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
        coordinateChangedIndex,
        exitCoordinateChangedIndex,
        dirtyChangedIndex,
        distanceChangedIndex,
        isCurrentItemChangedIndex,
        sequenceNumberChangedIndex,
        isSimpleItemChangedIndex,
        specifiesCoordinateChangedIndex,
        isStandaloneCoordinateChangedIndex,
        coordinateHasRelativeAltitudeChangedIndex,
        exitCoordinateHasRelativeAltitudeChangedIndex,
        exitCoordinateSameAsEntryChangedIndex,
        maxSignalIndex
    };

    enum {
        polygonPathChangedMask =                        1 << polygonPathChangedIndex,
        lastSequenceNumberChangedMask =                 1 << lastSequenceNumberChangedIndex,
        altitudeChangedMask =                           1 << altitudeChangedIndex,
        gridAngleChangedMask =                          1 << gridAngleChangedIndex,
        gridPointsChangedMask =                         1 << gridPointsChangedIndex,
        cameraTriggerChangedMask =                      1 << cameraTriggerChangedIndex,
        altDifferenceChangedMask =                      1 << altDifferenceChangedIndex,
        altPercentChangedMask =                         1 << altPercentChangedIndex,
        azimuthChangedMask =                            1 << azimuthChangedIndex,
        commandDescriptionChangedMask =                 1 << commandDescriptionChangedIndex,
        commandNameChangedMask =                        1 << commandNameChangedIndex,
        coordinateChangedMask =                         1 << coordinateChangedIndex,
        exitCoordinateChangedMask =                     1 << exitCoordinateChangedIndex,
        dirtyChangedMask =                              1 << dirtyChangedIndex,
        distanceChangedMask =                           1 << distanceChangedIndex,
        isCurrentItemChangedMask =                      1 << isCurrentItemChangedIndex,
        sequenceNumberChangedMask =                     1 << sequenceNumberChangedIndex,
        isSimpleItemChangedMask =                       1 << isSimpleItemChangedIndex,
        specifiesCoordinateChangedMask =                1 << specifiesCoordinateChangedIndex,
        isStandaloneCoordinateChangedMask =             1 << isStandaloneCoordinateChangedIndex,
        coordinateHasRelativeAltitudeChangedMask =      1 << coordinateHasRelativeAltitudeChangedIndex,
        exitCoordinateHasRelativeAltitudeChangedMask =  1 << exitCoordinateHasRelativeAltitudeChangedIndex,
        exitCoordinateSameAsEntryChangedMask =          1 << exitCoordinateSameAsEntryChangedIndex,
    };

    static const size_t _cComplexMissionItemSignals = maxSignalIndex;
    const char*         _rgComplexMissionItemSignals[_cComplexMissionItemSignals];

    MultiSignalSpy*         _multiSpy;
98
    SurveyMissionItem*     _complexItem;
99 100 101 102
    QList<QGeoCoordinate>   _polyPoints;
};

#endif