diff --git a/resources/share/test/testaircraft.acf b/resources/share/test/testaircraft.acf new file mode 100644 index 000000000..ac0e4b044 --- /dev/null +++ b/resources/share/test/testaircraft.acf @@ -0,0 +1,12 @@ +I +1004 version +ACF + +PROPERTIES_BEGIN +P acf/_ICAO BE58 +P acf/_ITT_is_C 1 +P acf/_descrip Beechcraft Baron B58 +P acf/_n_ref 0.0 +P acf/_name Beechcraft Baron 58 +P acf/_studio swift project +P acf/_author swift project diff --git a/tests/blackmisc/simulation/simulation.pro b/tests/blackmisc/simulation/simulation.pro index ab4600a6f..438ed9189 100644 --- a/tests/blackmisc/simulation/simulation.pro +++ b/tests/blackmisc/simulation/simulation.pro @@ -3,3 +3,4 @@ SUBDIRS += \ testinterpolatorlinear \ testinterpolatormisc \ testinterpolatorparts \ + testxplane \ diff --git a/tests/blackmisc/simulation/testxplane/testxplane.cpp b/tests/blackmisc/simulation/testxplane/testxplane.cpp new file mode 100644 index 000000000..81be63c7c --- /dev/null +++ b/tests/blackmisc/simulation/testxplane/testxplane.cpp @@ -0,0 +1,107 @@ +/* Copyright (C) 2018 + * swift Project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \cond PRIVATE_TESTS +//! \file +//! \ingroup testblackmisc + +#include "blackmisc/simulation/xplane/qtfreeutils.h" +#include "blackmisc/directoryutils.h" +#include "test.h" + +#include + +using namespace BlackMisc; +using namespace BlackMisc::Simulation::XPlane::QtFreeUtils; + +namespace BlackMiscTest +{ + //! X-Plane utils test + class CTestXPlane : public QObject + { + Q_OBJECT + + private slots: + void getFileNameTest(); + void getDirNameTest(); + void getBaseNameTest(); + void splitTest(); + void acfPropertiesTest(); + }; + + void CTestXPlane::getFileNameTest() + { + QCOMPARE(QString::fromStdString(getFileName("c:\\foo\\bar\\test.txt")), QString("test.txt")); + QCOMPARE(QString::fromStdString(getFileName("c:/foo/bar/test.txt")), QString("test.txt")); + QCOMPARE(QString::fromStdString(getFileName("/foo/bar/test.txt")), QString("test.txt")); + QCOMPARE(QString::fromStdString(getFileName("foo/test.txt")), QString("test.txt")); + QCOMPARE(QString::fromStdString(getFileName("test.txt")), QString("test.txt")); + QCOMPARE(QString::fromStdString(getFileName("foo/test.txt.txt")), QString("test.txt.txt")); + } + + void CTestXPlane::getDirNameTest() + { + QCOMPARE(QString::fromStdString(getDirName("c:\\foo\\bar\\test.txt")), QString("bar")); + QCOMPARE(QString::fromStdString(getDirName("c:/foo/bar/test.txt")), QString("bar")); + QCOMPARE(QString::fromStdString(getDirName("/foo/bar/test.txt")), QString("bar")); + QCOMPARE(QString::fromStdString(getDirName("foo/test.txt")), QString("foo")); + QCOMPARE(QString::fromStdString(getDirName("test.txt")), QString()); + QCOMPARE(QString::fromStdString(getDirName("foo/test.txt.txt")), QString("foo")); + } + + void CTestXPlane::getBaseNameTest() + { + QCOMPARE(QString::fromStdString(getBaseName("c:\\foo\\bar\\test.txt")), QString("test")); + QCOMPARE(QString::fromStdString(getBaseName("c:/foo/bar/test.txt")), QString("test")); + QCOMPARE(QString::fromStdString(getBaseName("/foo/bar/test.txt")), QString("test")); + QCOMPARE(QString::fromStdString(getBaseName("foo/test.txt")), QString("test")); + QCOMPARE(QString::fromStdString(getBaseName("test.txt")), QString("test")); + QCOMPARE(QString::fromStdString(getBaseName("foo/test.txt.txt")), QString("test")); + } + + void CTestXPlane::splitTest() + { + const std::string sentence("This is a test!"); + std::vector result = split(sentence); + QVERIFY(result.size() == 4); + QCOMPARE(QString::fromStdString(result[0]), QString("This")); + QCOMPARE(QString::fromStdString(result[3]), QString("test!")); + + std::vector result2 = split(sentence, 1); + QVERIFY(result2.size() == 2); + QCOMPARE(QString::fromStdString(result2[0]), QString("This")); + QCOMPARE(QString::fromStdString(result2[1]), QString("is a test!")); + + std::vector result3 = split(sentence, 0, "."); + QVERIFY(result3.size() == 1); + QCOMPARE(QString::fromStdString(result3[0]), QString("This is a test!")); + + std::vector result4 = split(""); + QVERIFY(result4.size() == 1); + QCOMPARE(QString::fromStdString(result4[0]), QString("")); + } + + void CTestXPlane::acfPropertiesTest() + { + QString testAcfFile = CDirectoryUtils::testFilesDirectory() + "/testaircraft.acf"; + AcfProperties acfProperties = extractAcfProperties(testAcfFile.toStdString()); + QCOMPARE(QString::fromStdString(acfProperties.aircraftIcaoCode), QString("BE58")); + QCOMPARE(QString::fromStdString(acfProperties.modelDescription), QString("[ACF] Beechcraft Baron B58")); + QCOMPARE(QString::fromStdString(acfProperties.author), QString("swift project")); + QCOMPARE(QString::fromStdString(acfProperties.modelName), QString("Beechcraft Baron 58")); + QCOMPARE(QString::fromStdString(acfProperties.modelString), QString("swift project Beechcraft Baron 58")); + } +} + +//! main +BLACKTEST_APPLESS_MAIN(BlackMiscTest::CTestXPlane); + +#include "testxplane.moc" + +//! \endcond diff --git a/tests/blackmisc/simulation/testxplane/testxplane.pro b/tests/blackmisc/simulation/testxplane/testxplane.pro new file mode 100644 index 000000000..b2ddad508 --- /dev/null +++ b/tests/blackmisc/simulation/testxplane/testxplane.pro @@ -0,0 +1,27 @@ +load(common_pre) + +QT += core dbus testlib + +TARGET = testxplane +CONFIG -= app_bundle +CONFIG += blackconfig +CONFIG += blackmisc +CONFIG += testcase +CONFIG += no_testcase_installs + +TEMPLATE = app + +DEPENDPATH += \ + . \ + $$SourceRoot/src \ + $$SourceRoot/tests \ + +INCLUDEPATH += \ + $$SourceRoot/src \ + $$SourceRoot/tests \ + +SOURCES += testxplane.cpp + +DESTDIR = $$DestRoot/bin + +load(common_post)