Files
pilotclient/tests/blackmisc/testidentifier/testidentifier.cpp
Roland Rossgotterer 94c2859e18 Replace QDBusConnection::localMachineId with QSysInfo::machineUniqueId()
QSysInfo::machineUniqueId() was added in Qt 5.11 and is using DBus independent unique machine ids everywhere except on Linux. This prevents running into an assert in case DBus is not properly installed at a very early stage of the application without any chance to give the user a warning and handle it gracefully.
2019-02-22 20:35:16 +00:00

82 lines
2.2 KiB
C++

/* Copyright (C) 2013
* 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/compare.h"
#include "blackmisc/identifier.h"
#include "blackmisc/identifiable.h"
#include "test.h"
#include <QObject>
#include <QString>
#include <QTest>
using namespace BlackMisc;
namespace BlackMiscTest
{
//! Testing object identifier
class CTestIdentifier : public QObject
{
Q_OBJECT
private slots:
//! Identifier tests
void identifierBasics();
//! Machine unique id tests
void machineUniqueId();
};
//! Test identifiable object
class CTestIdentifiable : public BlackMisc::CIdentifiable
{
public:
//! Constructor
CTestIdentifiable(QObject *nameObject);
};
void CTestIdentifier::identifierBasics()
{
CIdentifier o1;
CIdentifier o2;
CIdentifier o3("foobar");
QVERIFY2(o1 == o2, "Two default identifiers shall be equal");
QVERIFY2(o1 != o3, "Those identifiers shall be unequal");
// test object name change
QObject q;
q.setObjectName("foo");
CTestIdentifiable oa(&q);
QVERIFY2(oa.identifier().getName() == q.objectName(), "Names shall be equal");
q.setObjectName("bar");
QVERIFY2(oa.identifier().getName() == q.objectName(), "Names shall be equal");
}
void CTestIdentifier::machineUniqueId()
{
CIdentifier o;
QVERIFY2(!o.getMachineId().isEmpty(), "Machine id shall never be empty! If this test failed on a supported platform, get a fallback solution!");
}
CTestIdentifiable::CTestIdentifiable(QObject *nameObject) : CIdentifiable(nameObject)
{ }
} //namespace
//! main
BLACKTEST_APPLESS_MAIN(BlackMiscTest::CTestIdentifier);
#include "testidentifier.moc"
//! \endcond