swift
testaircraftparts.cpp
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2018 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
7 
8 #include <QJsonObject>
9 #include <QTest>
10 
11 #include "test.h"
12 
14 #include "misc/json.h"
15 
16 using namespace swift::misc::aviation;
17 using namespace swift::misc::json;
18 
19 namespace MiscTest
20 {
22  class CTestAircraftParts : public QObject
23  {
24  Q_OBJECT
25 
26  private slots:
28  void groundFlag();
29 
30  private:
32  swift::misc::aviation::CAircraftParts testParts1() const;
33  };
34 
35  void CTestAircraftParts::groundFlag()
36  {
37  const CAircraftParts ap1 = this->testParts1();
38  CAircraftParts ap2(ap1);
39  const QJsonObject ap1Json = ap1.toJson();
40  QJsonObject ap2Json = ap2.toJson();
41  QJsonObject deltaJson12 = getIncrementalObject(ap1Json, ap2Json);
42  QJsonObject deltaJson21 = getIncrementalObject(ap2Json, ap1Json);
43  QVERIFY2(deltaJson12.isEmpty(), "Values shall be the same");
44  QVERIFY2(deltaJson21.isEmpty(), "Values shall be the same");
45 
46  ap2.setOnGround(false);
47  ap2Json = ap2.toJson();
48  deltaJson12 = getIncrementalObject(ap1Json, ap2Json);
49  deltaJson21 = getIncrementalObject(ap2Json, ap1Json);
50 
51  QVERIFY2(deltaJson12.keys().size() == 1, "Values shall be 1");
52  QVERIFY2(deltaJson21.keys().size() == 1, "Values shall be 1");
53  bool deltaGnd = deltaJson12.value("on_ground").toBool(true);
54  QVERIFY2(deltaGnd == false, "Values shall be false");
55  deltaGnd = deltaJson21.value("on_ground").toBool(false);
56  QVERIFY2(deltaGnd == true, "Values shall be false");
57 
58  ap2 = ap1;
59  ap2.lights().setLandingOn(false);
60  deltaJson12 = getIncrementalObject(ap1.getLights().toJson(), ap2.getLights().toJson());
61  QVERIFY2(deltaJson12.size() == 1, "Expect 1 value (landing) changed");
62 
63  // same on parts object
64  deltaJson12 = getIncrementalObject(ap1.toJson(), ap2.toJson());
65  QVERIFY2(deltaJson12.size() == 1, "Expect 1 value (lights) changed");
66 
67  ap2.engines().setEngineOn(2, false);
68  ap2Json = ap2.toJson();
69  deltaJson12 = getIncrementalObject(ap1Json, ap2Json);
70  QVERIFY2(deltaJson12.size() == 2, "Expect 2 value (lights, engines) changed");
71 
72  // const QString json1 = stringFromJsonObject(deltaJson12);
73  // const QString json2 = stringFromJsonObject(deltaJson21);
74  }
75 
76  CAircraftParts CTestAircraftParts::testParts1() const
77  {
79  CAircraftEngineList engines;
80  engines.initEngines(4, true);
81  const bool onGround = true;
82  CAircraftParts ap(lights, true, 0, false, engines, onGround);
83  return ap;
84  }
85 } // namespace MiscTest
86 
89 
90 #include "testaircraftparts.moc"
91 
Value object encapsulating a list of aircraft engines.
void initEngines(int engineNumber, bool on)
Init some engines.
Value object encapsulating information about aircraft's lights.
static CAircraftLights allLightsOn()
Returns object with all lights switched on.
void setLandingOn(bool on)
Set landing lights.
Value object encapsulating information of aircraft's parts.
Definition: aircraftparts.h:26
CAircraftLights getLights() const
Get aircraft lights.
Definition: aircraftparts.h:72
CAircraftLights & lights()
Reference to lights, meant for easy direct changes of the values.
Definition: aircraftparts.h:78
QJsonObject toJson() const
Cast to JSON object.
Definition: mixinjson.h:132
SWIFTTEST_APPLESS_MAIN(MiscTest::CTestAircraftParts)
main