diff --git a/src/blackcore/context/contextaudioproxy.cpp b/src/blackcore/context/contextaudioproxy.cpp index a67e1aa16..d949bfd20 100644 --- a/src/blackcore/context/contextaudioproxy.cpp +++ b/src/blackcore/context/contextaudioproxy.cpp @@ -9,12 +9,14 @@ #include "blackcore/context/contextaudioproxy.h" #include "blackmisc/dbus.h" +#include "blackmisc/dbusserver.h" #include "blackmisc/genericdbusinterface.h" #include #include #include +using namespace BlackMisc; using namespace BlackMisc::Audio; using namespace BlackMisc::Network; using namespace BlackMisc::Aviation; @@ -30,6 +32,14 @@ namespace BlackCore this->relaySignals(serviceName, connection); } + void CContextAudioProxy::unitTestRelaySignals() + { + // connect signals, asserts when failures + QDBusConnection con = QDBusConnection::sessionBus(); + CContextAudioProxy c(CDBusServer::coreServiceName(), con, CCoreFacadeConfig::Remote, nullptr); + Q_UNUSED(c); + } + void CContextAudioProxy::relaySignals(const QString &serviceName, QDBusConnection &connection) { bool s = connection.connect(serviceName, IContextAudio::ObjectPath(), IContextAudio::InterfaceName(), diff --git a/src/blackcore/context/contextaudioproxy.h b/src/blackcore/context/contextaudioproxy.h index bf8226137..abca8d570 100644 --- a/src/blackcore/context/contextaudioproxy.h +++ b/src/blackcore/context/contextaudioproxy.h @@ -54,6 +54,9 @@ namespace BlackCore //! Destructor virtual ~CContextAudioProxy() {} + //! Unit test relay signals + //! \private + static void unitTestRelaySignals(); public slots: // interface overrides diff --git a/src/blackcore/context/contextnetworkproxy.cpp b/src/blackcore/context/contextnetworkproxy.cpp index 8e9259cb3..62cad4065 100644 --- a/src/blackcore/context/contextnetworkproxy.cpp +++ b/src/blackcore/context/contextnetworkproxy.cpp @@ -10,12 +10,14 @@ #include "blackcore/context/contextnetworkproxy.h" #include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/dbus.h" +#include "blackmisc/dbusserver.h" #include "blackmisc/genericdbusinterface.h" #include #include #include #include +#include using namespace BlackMisc; using namespace BlackMisc::Network; @@ -36,6 +38,14 @@ namespace BlackCore this->relaySignals(serviceName, connection); } + void CContextNetworkProxy::unitTestRelaySignals() + { + // connect signals, asserts when failures + QDBusConnection con = QDBusConnection::sessionBus(); + CContextNetworkProxy c(CDBusServer::coreServiceName(), con, CCoreFacadeConfig::Remote, nullptr); + Q_UNUSED(c); + } + void CContextNetworkProxy::relaySignals(const QString &serviceName, QDBusConnection &connection) { bool s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), diff --git a/src/blackcore/context/contextnetworkproxy.h b/src/blackcore/context/contextnetworkproxy.h index 1696e8831..2cf9445bf 100644 --- a/src/blackcore/context/contextnetworkproxy.h +++ b/src/blackcore/context/contextnetworkproxy.h @@ -68,6 +68,10 @@ namespace BlackCore //! Destructor virtual ~CContextNetworkProxy() {} + //! Unit test relay signals + //! \private + static void unitTestRelaySignals(); + public slots: //! \name Interface overrides //! @{ diff --git a/src/blackcore/context/contextownaircraftproxy.cpp b/src/blackcore/context/contextownaircraftproxy.cpp index 6f77902c2..59210506c 100644 --- a/src/blackcore/context/contextownaircraftproxy.cpp +++ b/src/blackcore/context/contextownaircraftproxy.cpp @@ -9,6 +9,7 @@ #include "blackcore/context/contextownaircraftproxy.h" #include "blackmisc/dbus.h" +#include "blackmisc/dbusserver.h" #include "blackmisc/genericdbusinterface.h" #include @@ -41,6 +42,14 @@ namespace BlackCore this->relayBaseClassSignals(serviceName, connection, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName()); } + void CContextOwnAircraftProxy::unitTestRelaySignals() + { + // connect signals, asserts when failures + QDBusConnection con = QDBusConnection::sessionBus(); + CContextOwnAircraftProxy c(CDBusServer::coreServiceName(), con, CCoreFacadeConfig::Remote, nullptr); + Q_UNUSED(c); + } + BlackMisc::Simulation::CSimulatedAircraft CContextOwnAircraftProxy::getOwnAircraft() const { return this->m_dBusInterface->callDBusRet(QLatin1Literal("getOwnAircraft")); diff --git a/src/blackcore/context/contextownaircraftproxy.h b/src/blackcore/context/contextownaircraftproxy.h index 7736255b3..75a31ba3a 100644 --- a/src/blackcore/context/contextownaircraftproxy.h +++ b/src/blackcore/context/contextownaircraftproxy.h @@ -56,6 +56,10 @@ namespace BlackCore //! Destructor virtual ~CContextOwnAircraftProxy() {} + //! Unit test relay signals + //! \private + static void unitTestRelaySignals(); + public slots: //! \publicsection //! @{ diff --git a/src/blackcore/context/contextsimulatorproxy.cpp b/src/blackcore/context/contextsimulatorproxy.cpp index 74cb23d1f..197eee477 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -9,6 +9,7 @@ #include "blackcore/context/contextsimulatorproxy.h" #include "blackmisc/dbus.h" +#include "blackmisc/dbusserver.h" #include "blackmisc/genericdbusinterface.h" #include "blackmisc/simulation/simulatedaircraft.h" @@ -36,6 +37,14 @@ namespace BlackCore this->relaySignals(serviceName, connection); } + void CContextSimulatorProxy::unitTestRelaySignals() + { + // connect signals, asserts when failures + QDBusConnection con = QDBusConnection::sessionBus(); + CContextSimulatorProxy c(CDBusServer::coreServiceName(), con, CCoreFacadeConfig::Remote, nullptr); + Q_UNUSED(c); + } + void CContextSimulatorProxy::relaySignals(const QString &serviceName, QDBusConnection &connection) { bool s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(), diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index a5c32ce02..a57b34c0f 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -50,6 +50,10 @@ namespace BlackCore //! Destructor virtual ~CContextSimulatorProxy() {} + //! Unit test relay signals + //! \private + static void unitTestRelaySignals(); + public slots: //! \name Interface overrides //! @{ diff --git a/tests/blackcore/testcontext.cpp b/tests/blackcore/testcontext.cpp new file mode 100644 index 000000000..f8cd5fea4 --- /dev/null +++ b/tests/blackcore/testcontext.cpp @@ -0,0 +1,35 @@ +/* Copyright (C) 2017 + * 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 testblackcore + */ + +#include "testcontext.h" +#include "blackcore/context/contextallproxies.h" + +using namespace BlackCore::Context; + +namespace BlackCoreTest +{ + void CTestContext::contextInitTest() + { + // will cause asserts when signal connects fail + + CContextAudioProxy::unitTestRelaySignals(); + CContextNetworkProxy::unitTestRelaySignals(); + CContextOwnAircraftProxy::unitTestRelaySignals(); + CContextSimulatorProxy::unitTestRelaySignals(); + } +} + +//! \endcond diff --git a/tests/blackcore/testcontext.h b/tests/blackcore/testcontext.h new file mode 100644 index 000000000..f46762e9c --- /dev/null +++ b/tests/blackcore/testcontext.h @@ -0,0 +1,42 @@ +/* Copyright (C) 2017 + * 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. + */ + +#ifndef BLACKCORETEST_TESTCONTEXT_H +#define BLACKCORETEST_TESTCONTEXT_H + +#include + +//! \cond PRIVATE_TESTS +//! \file +//! \ingroup testblackcore + +namespace BlackCoreTest +{ + /*! + * Context implementation classes tests + */ + class CTestContext : public QObject + { + Q_OBJECT + + public: + //! Constructor. + explicit CTestContext(QObject *parent = nullptr) : + QObject(parent) + {} + + private slots: + //! Init tests for context + void contextInitTest(); + }; +} //namespace + +//! \endcond + +#endif // guard