swift
testdatastream.cpp
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
11 #include <QByteArray>
12 #include <QTest>
13 
14 #include "test.h"
15 
16 #include "misc/registermetadata.h"
18 #include "misc/test/testservice.h"
20 
21 using namespace swift::misc;
22 using namespace swift::misc::aviation;
23 using namespace swift::misc::simulation;
24 using namespace swift::misc::test;
25 
26 namespace MiscTest
27 {
29  class CTestDataStream : public QObject
30  {
31  Q_OBJECT
32 
33  private slots:
35  void initTestCase();
36 
38  void marshalUnmarshal();
39  };
40 
41  void CTestDataStream::initTestCase() { swift::misc::registerMetadata(); }
42 
43  void CTestDataStream::marshalUnmarshal()
44  {
45  CSimulatedAircraftList testData { { CCallsign("BAW123"), {}, {} },
46  { CCallsign("DLH456"), {}, {} },
47  { CCallsign("AAL789"), {}, {} } };
48 
49  QByteArray bytes;
50  {
51  QDataStream writer(&bytes, QIODevice::WriteOnly);
52  writer << testData;
53  }
54  {
55  QDataStream reader(bytes);
57  reader >> result;
58  QVERIFY2(result == testData, "roundtrip marshal/unmarshal compares equal");
59  }
60  }
61 } // namespace MiscTest
62 
65 
66 #include "testdatastream.moc"
67 
QDataStream serialization tests.
Value object encapsulating information of a callsign.
Definition: callsign.h:30
Value object encapsulating a list of aircraft.
Generate data for testing purposes.
Definition: testdata.h:45
Free functions in swift::misc.
void registerMetadata()
Register all relevant metadata in Misc.
SWIFTTEST_MAIN(MiscTest::CTestDataStream)
main