From d3ccf97331935b181041394b80be20dca282ea71 Mon Sep 17 00:00:00 2001 From: christian mueller Date: Wed, 29 Feb 2012 13:27:27 +0100 Subject: * [ performance] for classes that do not need to be derived from, removed virtual desctructor * implemented confirmation of routing ready in RoutingReceiver * [Sockethandler] automatically set gDispatchDone to 0 when starting mainloop * fixed unit text to work with latest changes (expect Dbus command interface) * [GAM-4] added way to do synchronous calling on interfaces with the help of CAmSerializer.h * reworked AsyncRoutingPlugin to work with CAmSerializer.h * reworked AsyncRoutingPlugin to register elemtes in thread using CAmSerializer.h * reworked AsncPlugin Tests to work with remodelled Plugin --- .../test/controlInterface/CMakeLists.txt | 2 + .../test/controlInterface/MockInterfaces.h | 250 ++++++++++---------- .../test/controlInterface/controlInterfaceTest.cpp | 23 +- .../test/controlInterface/controlInterfaceTest.h | 27 ++- AudioManagerDaemon/test/database/CMakeLists.txt | 3 + AudioManagerDaemon/test/database/MockInterfaces.h | 254 +++++++++++--------- AudioManagerDaemon/test/database/databaseTest.cpp | 167 +++++++------ AudioManagerDaemon/test/database/databaseTest.h | 7 +- AudioManagerDaemon/test/routing/CMakeLists.txt | 3 + AudioManagerDaemon/test/routing/MockInterfaces.h | 262 +++++++++++---------- AudioManagerDaemon/test/routing/routingTest.cpp | 41 +--- AudioManagerDaemon/test/routing/routingTest.h | 2 + .../test/routingInterface/CMakeLists.txt | 3 + .../test/routingInterface/MockRoutingInterface.h | 17 +- .../test/routingInterface/routingInterfaceTest.cpp | 5 +- .../test/routingInterface/routingInterfaceTest.h | 2 + .../test/sockethandler/sockethandlerTest.h | 4 +- .../test/telnetserver/CAmTelnetServerTest.cpp | 6 +- 18 files changed, 551 insertions(+), 527 deletions(-) (limited to 'AudioManagerDaemon/test') diff --git a/AudioManagerDaemon/test/controlInterface/CMakeLists.txt b/AudioManagerDaemon/test/controlInterface/CMakeLists.txt index 5071326..bdf8ac5 100644 --- a/AudioManagerDaemon/test/controlInterface/CMakeLists.txt +++ b/AudioManagerDaemon/test/controlInterface/CMakeLists.txt @@ -54,6 +54,8 @@ file(GLOB CONTROL_INTERFACE_SRCS_CXX "../../src/ControlSender.cpp" "../../src/Router.cpp" "../../src/DLTWrapper.cpp" + "../../src/SocketHandler.cpp" + "../../src/CommandReceiver.cpp" "../CommonFunctions.cpp" "*.cpp" ) diff --git a/AudioManagerDaemon/test/controlInterface/MockInterfaces.h b/AudioManagerDaemon/test/controlInterface/MockInterfaces.h index b49cae6..a341eee 100644 --- a/AudioManagerDaemon/test/controlInterface/MockInterfaces.h +++ b/AudioManagerDaemon/test/controlInterface/MockInterfaces.h @@ -34,132 +34,142 @@ namespace am { class MockRoutingSendInterface : public RoutingSendInterface { public: - MOCK_METHOD1(startupRoutingInterface, - void(RoutingReceiveInterface* routingreceiveinterface)); - MOCK_METHOD0(routingInterfacesReady, - void()); - MOCK_METHOD0(routingInterfacesRundown, - void()); - MOCK_METHOD1(asyncAbort, - am_Error_e(const am_Handle_s handle)); - MOCK_METHOD5(asyncConnect, - am_Error_e(const am_Handle_s handle, const am_connectionID_t connectionID, const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_ConnectionFormat_e connectionFormat)); - MOCK_METHOD2(asyncDisconnect, - am_Error_e(const am_Handle_s handle, const am_connectionID_t connectionID)); - MOCK_METHOD5(asyncSetSinkVolume, - am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume, const am_RampType_e ramp, const am_time_t time)); - MOCK_METHOD5(asyncSetSourceVolume, - am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume, const am_RampType_e ramp, const am_time_t time)); - MOCK_METHOD3(asyncSetSourceState, - am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SourceState_e state)); - MOCK_METHOD3(asyncSetSinkSoundProperties, - am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const std::vector& listSoundProperties)); - MOCK_METHOD3(asyncSetSinkSoundProperty, - am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const am_SoundProperty_s& soundProperty)); - MOCK_METHOD3(asyncSetSourceSoundProperties, - am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const std::vector& listSoundProperties)); - MOCK_METHOD3(asyncSetSourceSoundProperty, - am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SoundProperty_s& soundProperty)); - MOCK_METHOD5(asyncCrossFade, - am_Error_e(const am_Handle_s handle, const am_crossfaderID_t crossfaderID, const am_HotSink_e hotSink, const am_RampType_e rampType, const am_time_t time)); - MOCK_METHOD2(setDomainState, - am_Error_e(const am_domainID_t domainID, const am_DomainState_e domainState)); - MOCK_CONST_METHOD1(returnBusName, - am_Error_e(std::string& BusName)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_METHOD1(startupInterface, + am_Error_e(RoutingReceiveInterface* routingreceiveinterface)); + MOCK_METHOD1(setRoutingReady, + void(const uint16_t handle)); + MOCK_METHOD1(setRoutingRundown, + void(const uint16_t handle)); + MOCK_METHOD1(asyncAbort, + am_Error_e(const am_Handle_s handle)); + MOCK_METHOD5(asyncConnect, + am_Error_e(const am_Handle_s handle, const am_connectionID_t connectionID, const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_ConnectionFormat_e connectionFormat)); + MOCK_METHOD2(asyncDisconnect, + am_Error_e(const am_Handle_s handle, const am_connectionID_t connectionID)); + MOCK_METHOD5(asyncSetSinkVolume, + am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume, const am_RampType_e ramp, const am_time_t time)); + MOCK_METHOD5(asyncSetSourceVolume, + am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume, const am_RampType_e ramp, const am_time_t time)); + MOCK_METHOD3(asyncSetSourceState, + am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SourceState_e state)); + MOCK_METHOD3(asyncSetSinkSoundProperties, + am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const std::vector& listSoundProperties)); + MOCK_METHOD3(asyncSetSinkSoundProperty, + am_Error_e(const am_Handle_s handle, const am_sinkID_t sinkID, const am_SoundProperty_s& soundProperty)); + MOCK_METHOD3(asyncSetSourceSoundProperties, + am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const std::vector& listSoundProperties)); + MOCK_METHOD3(asyncSetSourceSoundProperty, + am_Error_e(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SoundProperty_s& soundProperty)); + MOCK_METHOD5(asyncCrossFade, + am_Error_e(const am_Handle_s handle, const am_crossfaderID_t crossfaderID, const am_HotSink_e hotSink, const am_RampType_e rampType, const am_time_t time)); + MOCK_METHOD2(setDomainState, + am_Error_e(const am_domainID_t domainID, const am_DomainState_e domainState)); + MOCK_CONST_METHOD1(returnBusName, + am_Error_e(std::string& BusName)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + }; class MockControlSendInterface : public ControlSendInterface { public: - MOCK_METHOD1(startupController, - am_Error_e(ControlReceiveInterface* controlreceiveinterface)); - MOCK_METHOD0(stopController, - am_Error_e()); - MOCK_METHOD0(hookAllPluginsLoaded, - void()); - MOCK_METHOD3(hookUserConnectionRequest, - am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); - MOCK_METHOD1(hookUserDisconnectionRequest, - am_Error_e(const am_mainConnectionID_t connectionID)); - MOCK_METHOD2(hookUserSetMainSinkSoundProperty, - am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD2(hookUserSetMainSourceSoundProperty, - am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD1(hookUserSetSystemProperty, - am_Error_e(const am_SystemProperty_s& property)); - MOCK_METHOD2(hookUserVolumeChange, - am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); - MOCK_METHOD2(hookUserVolumeStep, - am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); - MOCK_METHOD2(hookUserSetSinkMuteState, - am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); - MOCK_METHOD2(hookSystemRegisterDomain, - am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); - MOCK_METHOD1(hookSystemDeregisterDomain, - am_Error_e(const am_domainID_t domainID)); - MOCK_METHOD1(hookSystemDomainRegistrationComplete, - void(const am_domainID_t domainID)); - MOCK_METHOD2(hookSystemRegisterSink, - am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); - MOCK_METHOD1(hookSystemDeregisterSink, - am_Error_e(const am_sinkID_t sinkID)); - MOCK_METHOD2(hookSystemRegisterSource, - am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); - MOCK_METHOD1(hookSystemDeregisterSource, - am_Error_e(const am_sourceID_t sourceID)); - MOCK_METHOD2(hookSystemRegisterGateway, - am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); - MOCK_METHOD1(hookSystemDeregisterGateway, - am_Error_e(const am_gatewayID_t gatewayID)); - MOCK_METHOD2(hookSystemRegisterCrossfader, - am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); - MOCK_METHOD1(hookSystemDeregisterCrossfader, - am_Error_e(const am_crossfaderID_t crossfaderID)); - MOCK_METHOD3(hookSystemSinkVolumeTick, - void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); - MOCK_METHOD3(hookSystemSourceVolumeTick, - void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); - MOCK_METHOD2(hookSystemInterruptStateChange, - void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); - MOCK_METHOD2(hookSystemSinkAvailablityStateChange, - void(const am_sinkID_t sinkID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemSourceAvailablityStateChange, - void(const am_sourceID_t sourceID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemDomainStateChange, - void(const am_domainID_t domainID, const am_DomainState_e state)); - MOCK_METHOD1(hookSystemReceiveEarlyData, - void(const std::vector& data)); - MOCK_METHOD1(hookSystemSpeedChange, - void(const am_speed_t speed)); - MOCK_METHOD2(hookSystemTimingInformationChanged, - void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); - MOCK_METHOD2(cbAckConnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD2(cbAckDisconnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD3(cbAckCrossFade, - void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSinkVolumeChange, - void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSourceVolumeChange, - void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceState, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceSoundProperties, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSinkSoundProperties, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSinkSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD5(getConnectionFormatChoice, - am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector listPossibleConnectionFormats, std::vector& listPrioConnectionFormats)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_METHOD1(startupController, + am_Error_e(ControlReceiveInterface* controlreceiveinterface)); + MOCK_METHOD0(setControllerReady, + void()); + MOCK_METHOD0(setControllerRundown, + void()); + MOCK_METHOD3(hookUserConnectionRequest, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); + MOCK_METHOD1(hookUserDisconnectionRequest, + am_Error_e(const am_mainConnectionID_t connectionID)); + MOCK_METHOD2(hookUserSetMainSinkSoundProperty, + am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(hookUserSetMainSourceSoundProperty, + am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD1(hookUserSetSystemProperty, + am_Error_e(const am_SystemProperty_s& property)); + MOCK_METHOD2(hookUserVolumeChange, + am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); + MOCK_METHOD2(hookUserVolumeStep, + am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); + MOCK_METHOD2(hookUserSetSinkMuteState, + am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); + MOCK_METHOD2(hookSystemRegisterDomain, + am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); + MOCK_METHOD1(hookSystemDeregisterDomain, + am_Error_e(const am_domainID_t domainID)); + MOCK_METHOD1(hookSystemDomainRegistrationComplete, + void(const am_domainID_t domainID)); + MOCK_METHOD2(hookSystemRegisterSink, + am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); + MOCK_METHOD1(hookSystemDeregisterSink, + am_Error_e(const am_sinkID_t sinkID)); + MOCK_METHOD2(hookSystemRegisterSource, + am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); + MOCK_METHOD1(hookSystemDeregisterSource, + am_Error_e(const am_sourceID_t sourceID)); + MOCK_METHOD2(hookSystemRegisterGateway, + am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); + MOCK_METHOD1(hookSystemDeregisterGateway, + am_Error_e(const am_gatewayID_t gatewayID)); + MOCK_METHOD2(hookSystemRegisterCrossfader, + am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); + MOCK_METHOD1(hookSystemDeregisterCrossfader, + am_Error_e(const am_crossfaderID_t crossfaderID)); + MOCK_METHOD3(hookSystemSinkVolumeTick, + void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); + MOCK_METHOD3(hookSystemSourceVolumeTick, + void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); + MOCK_METHOD2(hookSystemInterruptStateChange, + void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); + MOCK_METHOD2(hookSystemSinkAvailablityStateChange, + void(const am_sinkID_t sinkID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemSourceAvailablityStateChange, + void(const am_sourceID_t sourceID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemDomainStateChange, + void(const am_domainID_t domainID, const am_DomainState_e state)); + MOCK_METHOD1(hookSystemReceiveEarlyData, + void(const std::vector& data)); + MOCK_METHOD1(hookSystemSpeedChange, + void(const am_speed_t speed)); + MOCK_METHOD2(hookSystemTimingInformationChanged, + void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); + MOCK_METHOD2(cbAckConnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD2(cbAckDisconnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD3(cbAckCrossFade, + void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSinkVolumeChange, + void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSourceVolumeChange, + void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceState, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD5(getConnectionFormatChoice, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector listPossibleConnectionFormats, std::vector& listPrioConnectionFormats)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + MOCK_METHOD0(confirmCommandReady, + void()); + MOCK_METHOD0(confirmRoutingReady, + void()); + MOCK_METHOD0(confirmCommandRundown, + void()); + MOCK_METHOD0(confirmRoutingRundown, + void()); + }; diff --git a/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.cpp b/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.cpp index 61f11a0..c262692 100644 --- a/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.cpp +++ b/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.cpp @@ -21,27 +21,12 @@ * Note that people who make modified versions of AudioManager are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU Lesser General Public License, version 2.1, gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. * */ - #include "controlInterfaceTest.h" #include #include #include #include #include "DLTWrapper.h" -#include -#include "MockInterfaces.h" -#include "DatabaseHandler.h" -#include "ControlReceiver.h" -#include "RoutingReceiver.h" -#include "DatabaseObserver.h" -#include "ControlSender.h" -#include "RoutingSender.h" -#include "SocketHandler.h" -#include "Router.h" -#include "../RoutingInterfaceBackdoor.h" -#include "../CommandInterfaceBackdoor.h" -#include "../ControlInterfaceBackdoor.h" -#include "../CommonFunctions.h" using namespace am; using namespace testing; @@ -52,7 +37,7 @@ controlInterfaceTest::controlInterfaceTest() : plistCommandPluginDirs(), // plistRoutingPluginDirs(), // pDatabaseHandler(std::string(":memory:")), // - pRoutingSender(plistRoutingPluginDirs), // + pRoutingSender(plistRoutingPluginDirs), //RoutingReceiver pCommandSender(plistCommandPluginDirs), // pMockControlInterface(), // pMockRoutingInterface(), // @@ -61,9 +46,9 @@ controlInterfaceTest::controlInterfaceTest() : pControlInterfaceBackdoor(), // pControlSender(std::string("")), // pRouter(&pDatabaseHandler,&pControlSender), // - pDatabaseObserver(&pCommandSender, &pSocketHandler, &pRoutingSender), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender,&pRouter), // - pRoutingReceiver(&pDatabaseHandler, &pRoutingSender, &pControlSender, pDBusWrapper) + pDatabaseObserver(&pCommandSender, &pRoutingSender, &pSocketHandler), // + pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pSocketHandler, &pRouter), // + pRoutingReceiver(&pDatabaseHandler, &pRoutingSender, &pControlSender, &pSocketHandler, pDBusWrapper) { pDatabaseHandler.registerObserver(&pDatabaseObserver); pControlInterfaceBackdoor.replaceController(&pControlSender, &pMockControlInterface); diff --git a/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.h b/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.h index 864f072..72e2f63 100644 --- a/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.h +++ b/AudioManagerDaemon/test/controlInterface/controlInterfaceTest.h @@ -28,19 +28,20 @@ #include #include -class DatbaseHandler; -class SocketHandler; -class RoutingSender; -class CommandSender; -class RoutingInterfaceBackdoor; -class CommandInterfaceBackdoor; -class ControlSender; -class Router; -class DatabaseObserver; -class ControlReceiver; -class RoutingReceiver; -class CommonFunctions; - +#include +#include "MockInterfaces.h" +#include "DatabaseHandler.h" +#include "ControlReceiver.h" +#include "RoutingReceiver.h" +#include "DatabaseObserver.h" +#include "ControlSender.h" +#include "RoutingSender.h" +#include "SocketHandler.h" +#include "Router.h" +#include "../RoutingInterfaceBackdoor.h" +#include "../CommandInterfaceBackdoor.h" +#include "../ControlInterfaceBackdoor.h" +#include "../CommonFunctions.h" namespace am { diff --git a/AudioManagerDaemon/test/database/CMakeLists.txt b/AudioManagerDaemon/test/database/CMakeLists.txt index 4f8ac3a..18e2883 100644 --- a/AudioManagerDaemon/test/database/CMakeLists.txt +++ b/AudioManagerDaemon/test/database/CMakeLists.txt @@ -52,6 +52,9 @@ file(GLOB DATABASE_SRCS_CXX "../../src/ControlSender.cpp" "../../src/Router.cpp" "../../src/DLTWrapper.cpp" + "../../src/SocketHandler.cpp" + "../../src/CommandReceiver.cpp" + "../../src/RoutingReceiver.cpp" "../CommonFunctions.cpp" "*.cpp" ) diff --git a/AudioManagerDaemon/test/database/MockInterfaces.h b/AudioManagerDaemon/test/database/MockInterfaces.h index b48c8e8..453add8 100644 --- a/AudioManagerDaemon/test/database/MockInterfaces.h +++ b/AudioManagerDaemon/test/database/MockInterfaces.h @@ -35,44 +35,49 @@ namespace am { class MockCommandSendInterface : public CommandSendInterface { public: - MOCK_METHOD1(startupInterface, - am_Error_e(CommandReceiveInterface* commandreceiveinterface)); - MOCK_METHOD0(stopInterface, - am_Error_e()); - MOCK_METHOD0(cbCommunicationReady, - am_Error_e()); - MOCK_METHOD0(cbCommunicationRundown, - am_Error_e()); - MOCK_METHOD0(cbNumberOfMainConnectionsChanged, - void()); - MOCK_METHOD0(cbNumberOfSinksChanged, - void()); - MOCK_METHOD0(cbNumberOfSourcesChanged, - void()); - MOCK_METHOD0(cbNumberOfSinkClassesChanged, - void()); - MOCK_METHOD0(cbNumberOfSourceClassesChanged, - void()); - MOCK_METHOD2(cbMainConnectionStateChanged, - void(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState)); - MOCK_METHOD2(cbMainSinkSoundPropertyChanged, - void(const am_sinkID_t sinkID, const am_MainSoundProperty_s soundProperty)); - MOCK_METHOD2(cbMainSourceSoundPropertyChanged, - void(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD2(cbSinkAvailabilityChanged, - void(const am_sinkID_t sinkID, const am_Availability_s& availability)); - MOCK_METHOD2(cbSourceAvailabilityChanged, - void(const am_sourceID_t sourceID, const am_Availability_s& availability)); - MOCK_METHOD2(cbVolumeChanged, - void(const am_sinkID_t sinkID, const am_mainVolume_t volume)); - MOCK_METHOD2(cbSinkMuteStateChanged, - void(const am_sinkID_t sinkID, const am_MuteState_e muteState)); - MOCK_METHOD1(cbSystemPropertyChanged, - void(const am_SystemProperty_s& systemProperty)); - MOCK_METHOD2(cbTimingInformationChanged, - void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_METHOD1(startupInterface, + am_Error_e(CommandReceiveInterface* commandreceiveinterface)); + MOCK_METHOD1(setCommandReady, + void(const uint16_t handle)); + MOCK_METHOD1(setCommandRundown, + void(const uint16_t handle)); + MOCK_METHOD1(cbNewMainConnection, + void(const am_MainConnectionType_s mainConnection)); + MOCK_METHOD1(cbRemovedMainConnection, + void(const am_mainConnectionID_t mainConnection)); + MOCK_METHOD1(cbNewSink, + void(const am_SinkType_s& sink)); + MOCK_METHOD1(cbRemovedSink, + void(const am_sinkID_t sinkID)); + MOCK_METHOD1(cbNewSource, + void(const am_SourceType_s& source)); + MOCK_METHOD1(cbRemovedSource, + void(const am_sourceID_t source)); + MOCK_METHOD0(cbNumberOfSinkClassesChanged, + void()); + MOCK_METHOD0(cbNumberOfSourceClassesChanged, + void()); + MOCK_METHOD2(cbMainConnectionStateChanged, + void(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState)); + MOCK_METHOD2(cbMainSinkSoundPropertyChanged, + void(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(cbMainSourceSoundPropertyChanged, + void(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(cbSinkAvailabilityChanged, + void(const am_sinkID_t sinkID, const am_Availability_s& availability)); + MOCK_METHOD2(cbSourceAvailabilityChanged, + void(const am_sourceID_t sourceID, const am_Availability_s& availability)); + MOCK_METHOD2(cbVolumeChanged, + void(const am_sinkID_t sinkID, const am_mainVolume_t volume)); + MOCK_METHOD2(cbSinkMuteStateChanged, + void(const am_sinkID_t sinkID, const am_MuteState_e muteState)); + MOCK_METHOD1(cbSystemPropertyChanged, + void(const am_SystemProperty_s& systemProperty)); + MOCK_METHOD2(cbTimingInformationChanged, + void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + }; @@ -80,84 +85,101 @@ class MockCommandSendInterface : public CommandSendInterface { class MockControlSendInterface : public ControlSendInterface { public: - MOCK_METHOD1(startupController, - am_Error_e(ControlReceiveInterface* controlreceiveinterface)); - MOCK_METHOD0(stopController, - am_Error_e()); - MOCK_METHOD0(hookAllPluginsLoaded, - void()); - MOCK_METHOD3(hookUserConnectionRequest, - am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); - MOCK_METHOD1(hookUserDisconnectionRequest, - am_Error_e(const am_mainConnectionID_t connectionID)); - MOCK_METHOD2(hookUserSetMainSinkSoundProperty, - am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD2(hookUserSetMainSourceSoundProperty, - am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD1(hookUserSetSystemProperty, - am_Error_e(const am_SystemProperty_s& property)); - MOCK_METHOD2(hookUserVolumeChange, - am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); - MOCK_METHOD2(hookUserVolumeStep, - am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); - MOCK_METHOD2(hookUserSetSinkMuteState, - am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); - MOCK_METHOD2(hookSystemRegisterDomain, - am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); - MOCK_METHOD1(hookSystemDeregisterDomain, - am_Error_e(const am_domainID_t domainID)); - MOCK_METHOD1(hookSystemDomainRegistrationComplete, - void(const am_domainID_t domainID)); - MOCK_METHOD2(hookSystemRegisterSink, - am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); - MOCK_METHOD1(hookSystemDeregisterSink, - am_Error_e(const am_sinkID_t sinkID)); - MOCK_METHOD2(hookSystemRegisterSource, - am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); - MOCK_METHOD1(hookSystemDeregisterSource, - am_Error_e(const am_sourceID_t sourceID)); - MOCK_METHOD2(hookSystemRegisterGateway, - am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); - MOCK_METHOD1(hookSystemDeregisterGateway, - am_Error_e(const am_gatewayID_t gatewayID)); - MOCK_METHOD2(hookSystemRegisterCrossfader, - am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); - MOCK_METHOD1(hookSystemDeregisterCrossfader, - am_Error_e(const am_crossfaderID_t crossfaderID)); - MOCK_METHOD3(hookSystemSinkVolumeTick, - void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); - MOCK_METHOD3(hookSystemSourceVolumeTick, - void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); - MOCK_METHOD2(hookSystemInterruptStateChange, - void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); - MOCK_METHOD2(hookSystemSinkAvailablityStateChange, - void(const am_sinkID_t sinkID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemSourceAvailablityStateChange, - void(const am_sourceID_t sourceID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemDomainStateChange, - void(const am_domainID_t domainID, const am_DomainState_e state)); - MOCK_METHOD1(hookSystemReceiveEarlyData, - void(const std::vector& data)); - MOCK_METHOD1(hookSystemSpeedChange, - void(const am_speed_t speed)); - MOCK_METHOD2(hookSystemTimingInformationChanged, - void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); - MOCK_METHOD2(cbAckConnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD2(cbAckDisconnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD3(cbAckCrossFade, - void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSinkVolumeChange, - void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSourceVolumeChange, - void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceState, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSinkSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD1(startupController, + am_Error_e(ControlReceiveInterface* controlreceiveinterface)); + MOCK_METHOD0(setControllerReady, + void()); + MOCK_METHOD0(setControllerRundown, + void()); + MOCK_METHOD3(hookUserConnectionRequest, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); + MOCK_METHOD1(hookUserDisconnectionRequest, + am_Error_e(const am_mainConnectionID_t connectionID)); + MOCK_METHOD2(hookUserSetMainSinkSoundProperty, + am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(hookUserSetMainSourceSoundProperty, + am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD1(hookUserSetSystemProperty, + am_Error_e(const am_SystemProperty_s& property)); + MOCK_METHOD2(hookUserVolumeChange, + am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); + MOCK_METHOD2(hookUserVolumeStep, + am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); + MOCK_METHOD2(hookUserSetSinkMuteState, + am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); + MOCK_METHOD2(hookSystemRegisterDomain, + am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); + MOCK_METHOD1(hookSystemDeregisterDomain, + am_Error_e(const am_domainID_t domainID)); + MOCK_METHOD1(hookSystemDomainRegistrationComplete, + void(const am_domainID_t domainID)); + MOCK_METHOD2(hookSystemRegisterSink, + am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); + MOCK_METHOD1(hookSystemDeregisterSink, + am_Error_e(const am_sinkID_t sinkID)); + MOCK_METHOD2(hookSystemRegisterSource, + am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); + MOCK_METHOD1(hookSystemDeregisterSource, + am_Error_e(const am_sourceID_t sourceID)); + MOCK_METHOD2(hookSystemRegisterGateway, + am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); + MOCK_METHOD1(hookSystemDeregisterGateway, + am_Error_e(const am_gatewayID_t gatewayID)); + MOCK_METHOD2(hookSystemRegisterCrossfader, + am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); + MOCK_METHOD1(hookSystemDeregisterCrossfader, + am_Error_e(const am_crossfaderID_t crossfaderID)); + MOCK_METHOD3(hookSystemSinkVolumeTick, + void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); + MOCK_METHOD3(hookSystemSourceVolumeTick, + void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); + MOCK_METHOD2(hookSystemInterruptStateChange, + void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); + MOCK_METHOD2(hookSystemSinkAvailablityStateChange, + void(const am_sinkID_t sinkID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemSourceAvailablityStateChange, + void(const am_sourceID_t sourceID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemDomainStateChange, + void(const am_domainID_t domainID, const am_DomainState_e state)); + MOCK_METHOD1(hookSystemReceiveEarlyData, + void(const std::vector& data)); + MOCK_METHOD1(hookSystemSpeedChange, + void(const am_speed_t speed)); + MOCK_METHOD2(hookSystemTimingInformationChanged, + void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); + MOCK_METHOD2(cbAckConnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD2(cbAckDisconnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD3(cbAckCrossFade, + void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSinkVolumeChange, + void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSourceVolumeChange, + void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceState, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD5(getConnectionFormatChoice, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector listPossibleConnectionFormats, std::vector& listPrioConnectionFormats)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + MOCK_METHOD0(confirmCommandReady, + void()); + MOCK_METHOD0(confirmRoutingReady, + void()); + MOCK_METHOD0(confirmCommandRundown, + void()); + MOCK_METHOD0(confirmRoutingRundown, + void()); + }; } // namespace am diff --git a/AudioManagerDaemon/test/database/databaseTest.cpp b/AudioManagerDaemon/test/database/databaseTest.cpp index b31fd48..a43e436 100644 --- a/AudioManagerDaemon/test/database/databaseTest.cpp +++ b/AudioManagerDaemon/test/database/databaseTest.cpp @@ -24,14 +24,10 @@ */ #include "databaseTest.h" -#include "MockInterfaces.h" -#include "DatabaseHandler.h" -#include "ControlReceiver.h" -#include "ControlSender.h" -#include "DatabaseObserver.h" -#include "../ControlInterfaceBackdoor.h" -#include "../CommandInterfaceBackdoor.h" -#include "../CommonFunctions.h" +#include +#include +#include +#include #include "DLTWrapper.h" using namespace am; @@ -47,6 +43,7 @@ extern std::string int2string(int i); databasetest::databasetest() : plistRoutingPluginDirs(), // plistCommandPluginDirs(), // + pSocketHandler(),// pDatabaseHandler(std::string(":memory:")), // pRoutingSender(plistRoutingPluginDirs), // pCommandSender(plistCommandPluginDirs), // @@ -55,8 +52,8 @@ databasetest::databasetest() : pCommandInterfaceBackdoor(), // pControlSender(""), // pRouter(&pDatabaseHandler, &pControlSender), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pRouter), // - pObserver(&pCommandSender, &pRoutingSender) + pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pSocketHandler, &pRouter), // + pObserver(&pCommandSender,&pRoutingSender, &pSocketHandler) { pDatabaseHandler.registerObserver(&pObserver); pCommandInterfaceBackdoor.injectInterface(&pCommandSender, &pMockInterface); @@ -75,8 +72,8 @@ void databasetest::createMainConnectionSetup() std::vector connectionList; //we create 9 sources and sinks: - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(9); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(9); + + for (uint16_t i = 1; i < 10; i++) { @@ -119,8 +116,8 @@ void databasetest::createMainConnectionSetup() mainConnection.delay = -1; //enter mainconnection in database - EXPECT_CALL(pMockInterface,cbNumberOfMainConnectionsChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); + + ASSERT_EQ(E_OK, pDatabaseHandler.enterMainConnectionDB(mainConnection,mainConnectionID)); ASSERT_NE(0, mainConnectionID); @@ -155,8 +152,8 @@ TEST_F(databasetest,getMainConnectionInfo) std::vector connectionList; //we create 9 sources and sinks: - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(9); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(9); + + for (uint16_t i = 1; i < 10; i++) { @@ -199,8 +196,8 @@ TEST_F(databasetest,getMainConnectionInfo) mainConnection.delay = -1; //enter mainconnection in database - EXPECT_CALL(pMockInterface,cbNumberOfMainConnectionsChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); + + ASSERT_EQ(E_OK, pDatabaseHandler.enterMainConnectionDB(mainConnection,mainConnectionID)); ASSERT_NE(0, mainConnectionID); @@ -232,7 +229,7 @@ TEST_F(databasetest,getSinKInfo) pCF.createSink(staticSink); staticSink.sinkID = 4; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(staticSink,staticSinkID)) << "ERROR: database error"; ASSERT_EQ(staticSink.sinkID,staticSinkID) @@ -294,7 +291,7 @@ TEST_F(databasetest,getSourceInfo) staticSource.sourceID = 4; staticSource.name = "Static"; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(staticSource,staticSourceID)) << "ERROR: database error"; ASSERT_EQ(staticSource.sourceID,staticSourceID) @@ -351,7 +348,7 @@ TEST_F(databasetest,getSourceInfo) TEST_F(databasetest, peekSourceID) { - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(1); + std::string sourceName("myClassID"); am_sourceClass_t sourceClassID, peekID; am_SourceClass_s sourceClass; @@ -375,7 +372,7 @@ TEST_F(databasetest, peekSourceID) TEST_F(databasetest, peekSinkID) { - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(1); + std::string sinkName("myClassID"); am_sinkClass_t sinkClassID, peekID; am_SinkClass_s sinkClass; @@ -400,8 +397,8 @@ TEST_F(databasetest, peekSinkID) TEST_F(databasetest,crossfaders) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + am_Crossfader_s crossfader; am_crossfaderID_t crossfaderID; am_Sink_s sinkA, sinkB; @@ -440,8 +437,8 @@ TEST_F(databasetest,crossfaders) TEST_F(databasetest,crossfadersGetFromDomain) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + am_Crossfader_s crossfader; am_crossfaderID_t crossfaderID; am_Sink_s sinkA, sinkB; @@ -489,7 +486,7 @@ TEST_F(databasetest,sourceState) source.sourceState = SS_OFF; //prepare the test - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); //change the source state @@ -509,7 +506,7 @@ TEST_F(databasetest,sinkVolumeChange) sink.volume = 23; //prepare the test - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); //change the volume and check the read out @@ -527,7 +524,7 @@ TEST_F(databasetest,sourceVolumeChange) source.volume = 23; //prepare test - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); //change the volume and check the read out @@ -544,7 +541,7 @@ TEST_F(databasetest, peekSource) pCF.createSource(source); //peek a source that does not exits - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSource(std::string("newsource"),sourceID)); //make sure it is not in the list @@ -554,7 +551,7 @@ TEST_F(databasetest, peekSource) //now enter the source with the same name and make sure it does not get a new ID source.name = "newsource"; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,source2ID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSources(listSources)); ASSERT_EQ(sourceID, source2ID); @@ -577,11 +574,11 @@ TEST_F(databasetest, peekSourceDouble) pCF.createSource(source); //peek a source that does not exits - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSource(std::string("newsource"),sourceID)); //peek a second source that does not exits - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSource(std::string("newsource2"),source2ID)); //make sure they are is not in the list @@ -591,7 +588,7 @@ TEST_F(databasetest, peekSourceDouble) source.name = "newsource"; //now enter the source with the same name than the first peek and make sure it does not get a new ID - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,source3ID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSources(listSources)); ASSERT_EQ(sourceID, source3ID); @@ -606,7 +603,7 @@ TEST_F(databasetest, peekSink) pCF.createSink(sink); //peek a sink that does not exits - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSink(std::string("newsink"),sinkID)); //make sure it is not in the list @@ -616,7 +613,7 @@ TEST_F(databasetest, peekSink) sink.name = "newsink"; //now enter the source with the same name and make sure it does not get a new ID - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sink2ID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); ASSERT_EQ(sinkID, sink2ID); @@ -639,11 +636,11 @@ TEST_F(databasetest, peekSinkDouble) pCF.createSink(sink); //peek a sink that does not exits - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSink(std::string("newsink"),sinkID)); //peek again - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(0); + ASSERT_EQ(E_OK, pDatabaseHandler.peekSink(std::string("nextsink"),sink2ID)); //make sure they are is not in the list @@ -653,7 +650,7 @@ TEST_F(databasetest, peekSinkDouble) sink.name = "newsink"; //now enter the sink with the same name than the first peek and make sure it does not get a new ID - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sink3ID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); ASSERT_EQ(sinkID, sink3ID); @@ -667,7 +664,6 @@ TEST_F(databasetest,changeConnectionTimingInformationCheckMainConnection) //prepare the test, it is one mainconnection, so we expect one callback createMainConnectionSetup(); - EXPECT_CALL(pMockInterface,cbTimingInformationChanged(1,216)).Times(1); //first get all visible mainconnections and make sure, the delay is set to -1 for the first entry ASSERT_EQ(E_OK, pDatabaseHandler.getListVisibleMainConnections(mainList)); @@ -725,11 +721,11 @@ TEST_F(databasetest,getSinkClassOfSink) sink.sinkClassID = 4; //prepare test - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); //enter a new sinkclass, read out again and check - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkClassDB(sinkClass,sinkClassID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinkClasses(sinkClassList)); ASSERT_EQ(sinkClassList[0].name, sinkClass.name); @@ -761,9 +757,9 @@ TEST_F(databasetest,getSourceClassOfSource) sourceClass.listClassProperties = classPropertyList; pCF.createSource(source); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceClassDB(sourceClassID,sourceClass)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSourceClasses(sourceClassList)); ASSERT_EQ(sourceClassList[0].name, sourceClass.name); @@ -792,7 +788,7 @@ TEST_F(databasetest,removeSourceClass) sourceClass.sourceClassID = 3; sourceClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(2); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceClassDB(sourceClassID,sourceClass)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSourceClasses(sourceClassList)); ASSERT_EQ(sourceClassList[0].name, sourceClass.name); @@ -822,7 +818,7 @@ TEST_F(databasetest,updateSourceClass) changedClass = sourceClass; changedClass.listClassProperties[1].value = 6; changedPropertyList = changedClass.listClassProperties; - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceClassDB(sourceClassID,sourceClass)); changedClass.sourceClassID = sourceClassID; ASSERT_EQ(E_OK, pDatabaseHandler.getListSourceClasses(sourceClassList)); @@ -853,7 +849,7 @@ TEST_F(databasetest,enterSourceClass) sourceClass.sourceClassID = 0; sourceClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceClassDB(sourceClassID,sourceClass)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSourceClasses(sourceClassList)); ASSERT_EQ(sourceClassList[0].name, sourceClass.name); @@ -878,7 +874,7 @@ TEST_F(databasetest,enterSourceClassStatic) sourceClass.sourceClassID = 3; sourceClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSourceClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceClassDB(sourceClassID,sourceClass)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSourceClasses(sourceClassList)); ASSERT_EQ(sourceClassList[0].name, sourceClass.name); @@ -903,7 +899,7 @@ TEST_F(databasetest,removeSinkClass) sinkClass.sinkClassID = 0; sinkClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(2); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkClassDB(sinkClass,sinkClassID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinkClasses(sinkClassList)); ASSERT_EQ(sinkClassList[0].name, sinkClass.name); @@ -933,7 +929,7 @@ TEST_F(databasetest,updateSinkClass) changedClass = sinkClass; changedClass.listClassProperties[1].value = 6; changedPropertyList = changedClass.listClassProperties; - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkClassDB(sinkClass,sinkClassID)); changedClass.sinkClassID = sinkClassID; ASSERT_EQ(E_OK, pDatabaseHandler.getListSinkClasses(sinkClassList)); @@ -964,7 +960,7 @@ TEST_F(databasetest,enterSinkClass) sinkClass.sinkClassID = 0; sinkClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkClassDB(sinkClass,sinkClassID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinkClasses(sinkClassList)); ASSERT_EQ(sinkClassList[0].name, sinkClass.name); @@ -989,7 +985,7 @@ TEST_F(databasetest,enterSinkClassStatic) sinkClass.sinkClassID = 4; sinkClass.listClassProperties = classPropertyList; - EXPECT_CALL(pMockInterface,cbNumberOfSinkClassesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkClassDB(sinkClass,sinkClassID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinkClasses(sinkClassList)); ASSERT_EQ(sinkClassList[0].name, sinkClass.name); @@ -1005,7 +1001,6 @@ TEST_F(databasetest, changeSystemProperty) systemProperty.type = SYP_UNKNOWN; systemProperty.value = 33; listSystemProperties.push_back(systemProperty); - EXPECT_CALL(pMockInterface,cbSystemPropertyChanged(_)).Times(1); //todo: check the exact value here ASSERT_EQ(E_OK, pDatabaseHandler.enterSystemProperties(listSystemProperties)); systemProperty.value = 444; ASSERT_EQ(E_OK, pDatabaseHandler.changeSystemPropertyDB(systemProperty)); @@ -1040,7 +1035,7 @@ TEST_F(databasetest,enterSourcesCorrect) staticSource.sourceID = 4; staticSource.name = "Static"; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(staticSource,staticSourceID)) << "ERROR: database error"; ASSERT_EQ(staticSource.sourceID,staticSourceID) @@ -1098,10 +1093,9 @@ TEST_F(databasetest, changeSourceMainSoundProperty) am_MainSoundProperty_s property; property.type = MSP_UNKNOWN; property.value = 33; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - EXPECT_CALL(pMockInterface,cbMainSourceSoundPropertyChanged(sourceID,_)).Times(1); //todo: check in detail ASSERT_EQ(E_OK, pDatabaseHandler.changeMainSourceSoundPropertyDB(property,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSources(listSources)); std::vector::iterator listIterator = listSources[0].listMainSoundProperties.begin(); @@ -1121,10 +1115,9 @@ TEST_F(databasetest, changeSinkMuteState) am_sinkID_t sinkID; pCF.createSink(sink); am_MuteState_e muteState = MS_MUTED; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - EXPECT_CALL(pMockInterface,cbSinkMuteStateChanged(sinkID,muteState)).Times(1); ASSERT_EQ(E_OK, pDatabaseHandler.changeSinkMuteStateDB(muteState,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); ASSERT_EQ(muteState, listSinks[0].muteState); @@ -1140,10 +1133,9 @@ TEST_F(databasetest, changeSinkMainSoundProperty) property.type = MSP_UNKNOWN; property.value = 33; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - EXPECT_CALL(pMockInterface,cbMainSinkSoundPropertyChanged(sinkID,_)).Times(1); ASSERT_EQ(E_OK, pDatabaseHandler.changeMainSinkSoundPropertyDB(property,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); std::vector::iterator listIterator = listSinks[0].listMainSoundProperties.begin(); @@ -1206,7 +1198,7 @@ TEST_F(databasetest, changeMainConnectionState) { std::vector listMainConnections; createMainConnectionSetup(); - EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.changeMainConnectionStateDB(1,CS_DISCONNECTING)); ASSERT_EQ(E_OK, pDatabaseHandler.getListMainConnections(listMainConnections)); ASSERT_EQ(CS_DISCONNECTING, listMainConnections[0].connectionState); @@ -1222,7 +1214,7 @@ TEST_F(databasetest, changeSinkAvailability) availability.availability = A_UNKNOWN; availability.availabilityReason = AR_GENIVI_TEMPERATURE; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.changeSinkAvailabilityDB(availability,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); @@ -1241,7 +1233,7 @@ TEST_F(databasetest, changeSourceAvailability) availability.availabilityReason = AR_GENIVI_TEMPERATURE; source.visible = true; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.changeSourceAvailabilityDB(availability,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSources(listSources)); @@ -1260,8 +1252,8 @@ TEST_F(databasetest,changeMainConnectionRoute) am_Sink_s sink; std::vector listConnectionID; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(9); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(9); + + for (uint16_t i = 1; i < 10; i++) { am_sinkID_t forgetSink; @@ -1304,10 +1296,9 @@ TEST_F(databasetest,changeMainSinkVolume) std::vector listSinks; pCF.createSink(sink); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - EXPECT_CALL(pMockInterface,cbVolumeChanged(sinkID,newVol)).Times(1); ASSERT_EQ(E_OK, pDatabaseHandler.changeSinkMainVolumeDB(newVol,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListSinks(listSinks)); ASSERT_EQ(listSinks[0].mainVolume, newVol); @@ -1321,7 +1312,7 @@ TEST_F(databasetest,getMainSourceSoundProperties) std::vector mainSoundProperties = source.listMainSoundProperties; std::vector listMainSoundProperties; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListMainSourceSoundProperties(sourceID,listMainSoundProperties)); ASSERT_TRUE(std::equal(mainSoundProperties.begin(),mainSoundProperties.end(),listMainSoundProperties.begin(),equalMainSoundProperty)); @@ -1335,7 +1326,7 @@ TEST_F(databasetest,getMainSinkSoundProperties) std::vector mainSoundProperties = sink.listMainSoundProperties; std::vector listMainSoundProperties; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.getListMainSinkSoundProperties(sinkID,listMainSoundProperties)); ASSERT_TRUE(std::equal(mainSoundProperties.begin(),mainSoundProperties.end(),listMainSoundProperties.begin(),equalMainSoundProperty)); @@ -1355,7 +1346,7 @@ TEST_F(databasetest,getMainSources) std::vector listMainSources; std::vector listSources; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); source.sourceID = sourceID; @@ -1387,7 +1378,7 @@ TEST_F(databasetest,getMainSinks) std::vector listMainSinks; std::vector listSinks; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); sink.sinkID = sinkID; ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink1,sinkID)); @@ -1436,7 +1427,7 @@ TEST_F(databasetest,getListSourcesOfDomain) pCF.createDomain(domain); sourceCheckList.push_back(1); //sink.sinkID); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); + ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID)); ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source,sourceID)) << "ERROR: database error"; @@ -1465,7 +1456,7 @@ TEST_F(databasetest,getListSinksOfDomain) pCF.createDomain(domain); sinkCheckList.push_back(1); //sink.sinkID); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID)); ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(sink,sinkID)) << "ERROR: database error"; @@ -1480,8 +1471,8 @@ TEST_F(databasetest,getListSinksOfDomain) TEST_F(databasetest,getListGatewaysOfDomain) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + am_Gateway_s gateway, gateway2; am_gatewayID_t gatewayID; am_domainID_t domainID; @@ -1544,8 +1535,8 @@ TEST_F(databasetest,removeDomain) TEST_F(databasetest,removeGateway) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + am_Gateway_s gateway; am_gatewayID_t gatewayID; std::vector listGateways; @@ -1575,7 +1566,7 @@ TEST_F(databasetest,removeSink) am_sinkID_t sinkID; std::vector listSinks; pCF.createSink(sink); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(sink,sinkID)) << "ERROR: database error"; ASSERT_EQ(E_OK,pDatabaseHandler.removeSinkDB(sinkID)) @@ -1593,7 +1584,7 @@ TEST_F(databasetest,removeSource) std::vector listSources; pCF.createSource(source); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source,sourceID)) << "ERROR: database error"; ASSERT_EQ(E_OK,pDatabaseHandler.removeSourceDB(sourceID)) @@ -1606,8 +1597,8 @@ TEST_F(databasetest,removeSource) TEST_F(databasetest, removeMainConnection) { createMainConnectionSetup(); - EXPECT_CALL(pMockInterface,cbNumberOfMainConnectionsChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); + + ASSERT_EQ(E_OK,pDatabaseHandler.removeMainConnectionDB(1)) << "ERROR: database error"; } @@ -1638,8 +1629,8 @@ TEST_F(databasetest,removeNonexistentGateway) TEST_F(databasetest,registerGatewayCorrect) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + //initialize gateway std::vector returnList; am_Gateway_s gateway, gateway1, gateway2; @@ -1702,8 +1693,8 @@ TEST_F(databasetest,registerGatewayCorrect) TEST_F(databasetest,getGatewayInfo) { - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + + //initialize gateway std::vector returnList; am_Gateway_s gateway, gateway1, gateway2; @@ -1779,7 +1770,7 @@ TEST_F(databasetest,enterSinkThatAlreadyExistFail) staticSink.sinkID = 43; staticSink.name = "Static"; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(staticSink,staticSinkID)) << "ERROR: database error"; ASSERT_EQ(staticSink.sinkID,staticSinkID) @@ -1801,7 +1792,7 @@ TEST_F(databasetest,enterSourcesThatAlreadyExistFail) pCF.createSource(staticSource); staticSource.sourceID = 4; - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(staticSource,staticSourceID)) << "ERROR: database error"; ASSERT_EQ(staticSource.sourceID,staticSourceID) @@ -1883,7 +1874,7 @@ TEST_F(databasetest,enterSinksCorrect) pCF.createSink(staticSink); staticSink.sinkID = 4; - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(staticSink,staticSinkID)) << "ERROR: database error"; ASSERT_EQ(staticSink.sinkID,staticSinkID) diff --git a/AudioManagerDaemon/test/database/databaseTest.h b/AudioManagerDaemon/test/database/databaseTest.h index 6927b4f..4dba9c6 100644 --- a/AudioManagerDaemon/test/database/databaseTest.h +++ b/AudioManagerDaemon/test/database/databaseTest.h @@ -30,10 +30,7 @@ #include #include -#include -#include -#include -#include + #include "MockInterfaces.h" #include "DatabaseHandler.h" #include "ControlReceiver.h" @@ -42,6 +39,7 @@ #include "RoutingSender.h" #include "Router.h" #include "ControlSender.h" +#include "SocketHandler.h" #include "../ControlInterfaceBackdoor.h" #include "../CommandInterfaceBackdoor.h" #include "../CommonFunctions.h" @@ -56,6 +54,7 @@ public: ~databasetest(); std::vector plistRoutingPluginDirs; std::vector plistCommandPluginDirs; + SocketHandler pSocketHandler; DatabaseHandler pDatabaseHandler; RoutingSender pRoutingSender; CommandSender pCommandSender; diff --git a/AudioManagerDaemon/test/routing/CMakeLists.txt b/AudioManagerDaemon/test/routing/CMakeLists.txt index 8f45741..a7c70f9 100644 --- a/AudioManagerDaemon/test/routing/CMakeLists.txt +++ b/AudioManagerDaemon/test/routing/CMakeLists.txt @@ -52,6 +52,9 @@ file(GLOB ROUTING_SRCS_CXX "../../src/ControlSender.cpp" "../../src/Router.cpp" "../../src/DLTWrapper.cpp" + "../../src/SocketHandler.cpp" + "../../src/CommandReceiver.cpp" + "../../src/RoutingReceiver.cpp" "../CommonFunctions.cpp" "*.cpp" ) diff --git a/AudioManagerDaemon/test/routing/MockInterfaces.h b/AudioManagerDaemon/test/routing/MockInterfaces.h index 207fadd..ea527ac 100644 --- a/AudioManagerDaemon/test/routing/MockInterfaces.h +++ b/AudioManagerDaemon/test/routing/MockInterfaces.h @@ -36,135 +36,149 @@ namespace am class MockCommandSendInterface : public CommandSendInterface { public: - MOCK_METHOD1(startupInterface, - am_Error_e(CommandReceiveInterface* commandreceiveinterface)); - MOCK_METHOD0(stopInterface, - am_Error_e()); - MOCK_METHOD0(cbCommunicationReady, - am_Error_e()); - MOCK_METHOD0(cbCommunicationRundown, - am_Error_e()); - MOCK_METHOD0(cbNumberOfMainConnectionsChanged, - void()); - MOCK_METHOD0(cbNumberOfSinksChanged, - void()); - MOCK_METHOD0(cbNumberOfSourcesChanged, - void()); - MOCK_METHOD0(cbNumberOfSinkClassesChanged, - void()); - MOCK_METHOD0(cbNumberOfSourceClassesChanged, - void()); - MOCK_METHOD2(cbMainConnectionStateChanged, - void(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState)); - MOCK_METHOD2(cbMainSinkSoundPropertyChanged, - void(const am_sinkID_t sinkID, const am_MainSoundProperty_s soundProperty)); - MOCK_METHOD2(cbMainSourceSoundPropertyChanged, - void(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD2(cbSinkAvailabilityChanged, - void(const am_sinkID_t sinkID, const am_Availability_s& availability)); - MOCK_METHOD2(cbSourceAvailabilityChanged, - void(const am_sourceID_t sourceID, const am_Availability_s& availability)); - MOCK_METHOD2(cbVolumeChanged, - void(const am_sinkID_t sinkID, const am_mainVolume_t volume)); - MOCK_METHOD2(cbSinkMuteStateChanged, - void(const am_sinkID_t sinkID, const am_MuteState_e muteState)); - MOCK_METHOD1(cbSystemPropertyChanged, - void(const am_SystemProperty_s& systemProperty)); - MOCK_METHOD2(cbTimingInformationChanged, - void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_METHOD1(startupInterface, + am_Error_e(CommandReceiveInterface* commandreceiveinterface)); + MOCK_METHOD1(setCommandReady, + void(const uint16_t handle)); + MOCK_METHOD1(setCommandRundown, + void(const uint16_t handle)); + MOCK_METHOD1(cbNewMainConnection, + void(const am_MainConnectionType_s mainConnection)); + MOCK_METHOD1(cbRemovedMainConnection, + void(const am_mainConnectionID_t mainConnection)); + MOCK_METHOD1(cbNewSink, + void(const am_SinkType_s& sink)); + MOCK_METHOD1(cbRemovedSink, + void(const am_sinkID_t sinkID)); + MOCK_METHOD1(cbNewSource, + void(const am_SourceType_s& source)); + MOCK_METHOD1(cbRemovedSource, + void(const am_sourceID_t source)); + MOCK_METHOD0(cbNumberOfSinkClassesChanged, + void()); + MOCK_METHOD0(cbNumberOfSourceClassesChanged, + void()); + MOCK_METHOD2(cbMainConnectionStateChanged, + void(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState)); + MOCK_METHOD2(cbMainSinkSoundPropertyChanged, + void(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(cbMainSourceSoundPropertyChanged, + void(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(cbSinkAvailabilityChanged, + void(const am_sinkID_t sinkID, const am_Availability_s& availability)); + MOCK_METHOD2(cbSourceAvailabilityChanged, + void(const am_sourceID_t sourceID, const am_Availability_s& availability)); + MOCK_METHOD2(cbVolumeChanged, + void(const am_sinkID_t sinkID, const am_mainVolume_t volume)); + MOCK_METHOD2(cbSinkMuteStateChanged, + void(const am_sinkID_t sinkID, const am_MuteState_e muteState)); + MOCK_METHOD1(cbSystemPropertyChanged, + void(const am_SystemProperty_s& systemProperty)); + MOCK_METHOD2(cbTimingInformationChanged, + void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + }; class MockControlSendInterface : public ControlSendInterface { public: - MOCK_METHOD1(startupController, - am_Error_e(ControlReceiveInterface* controlreceiveinterface)); - MOCK_METHOD0(stopController, - am_Error_e()); - MOCK_METHOD0(hookAllPluginsLoaded, - void()); - MOCK_METHOD3(hookUserConnectionRequest, - am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); - MOCK_METHOD1(hookUserDisconnectionRequest, - am_Error_e(const am_mainConnectionID_t connectionID)); - MOCK_METHOD2(hookUserSetMainSinkSoundProperty, - am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD2(hookUserSetMainSourceSoundProperty, - am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); - MOCK_METHOD1(hookUserSetSystemProperty, - am_Error_e(const am_SystemProperty_s& property)); - MOCK_METHOD2(hookUserVolumeChange, - am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); - MOCK_METHOD2(hookUserVolumeStep, - am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); - MOCK_METHOD2(hookUserSetSinkMuteState, - am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); - MOCK_METHOD2(hookSystemRegisterDomain, - am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); - MOCK_METHOD1(hookSystemDeregisterDomain, - am_Error_e(const am_domainID_t domainID)); - MOCK_METHOD1(hookSystemDomainRegistrationComplete, - void(const am_domainID_t domainID)); - MOCK_METHOD2(hookSystemRegisterSink, - am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); - MOCK_METHOD1(hookSystemDeregisterSink, - am_Error_e(const am_sinkID_t sinkID)); - MOCK_METHOD2(hookSystemRegisterSource, - am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); - MOCK_METHOD1(hookSystemDeregisterSource, - am_Error_e(const am_sourceID_t sourceID)); - MOCK_METHOD2(hookSystemRegisterGateway, - am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); - MOCK_METHOD1(hookSystemDeregisterGateway, - am_Error_e(const am_gatewayID_t gatewayID)); - MOCK_METHOD2(hookSystemRegisterCrossfader, - am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); - MOCK_METHOD1(hookSystemDeregisterCrossfader, - am_Error_e(const am_crossfaderID_t crossfaderID)); - MOCK_METHOD3(hookSystemSinkVolumeTick, - void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); - MOCK_METHOD3(hookSystemSourceVolumeTick, - void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); - MOCK_METHOD2(hookSystemInterruptStateChange, - void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); - MOCK_METHOD2(hookSystemSinkAvailablityStateChange, - void(const am_sinkID_t sinkID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemSourceAvailablityStateChange, - void(const am_sourceID_t sourceID, const am_Availability_s& availability)); - MOCK_METHOD2(hookSystemDomainStateChange, - void(const am_domainID_t domainID, const am_DomainState_e state)); - MOCK_METHOD1(hookSystemReceiveEarlyData, - void(const std::vector& data)); - MOCK_METHOD1(hookSystemSpeedChange, - void(const am_speed_t speed)); - MOCK_METHOD2(hookSystemTimingInformationChanged, - void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); - MOCK_METHOD2(cbAckConnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD2(cbAckDisconnect, - void(const am_Handle_s handle, const am_Error_e errorID)); - MOCK_METHOD3(cbAckCrossFade, - void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSinkVolumeChange, - void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); - MOCK_METHOD3(cbAckSetSourceVolumeChange, - void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceState, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceSoundProperties, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSourceSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSinkSoundProperties, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD2(cbAckSetSinkSoundProperty, - void(const am_Handle_s handle, const am_Error_e error)); - MOCK_METHOD5(getConnectionFormatChoice, - am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector listPossibleConnectionFormats, std::vector& listPrioConnectionFormats)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_METHOD1(startupController, + am_Error_e(ControlReceiveInterface* controlreceiveinterface)); + MOCK_METHOD0(setControllerReady, + void()); + MOCK_METHOD0(setControllerRundown, + void()); + MOCK_METHOD3(hookUserConnectionRequest, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID)); + MOCK_METHOD1(hookUserDisconnectionRequest, + am_Error_e(const am_mainConnectionID_t connectionID)); + MOCK_METHOD2(hookUserSetMainSinkSoundProperty, + am_Error_e(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD2(hookUserSetMainSourceSoundProperty, + am_Error_e(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty)); + MOCK_METHOD1(hookUserSetSystemProperty, + am_Error_e(const am_SystemProperty_s& property)); + MOCK_METHOD2(hookUserVolumeChange, + am_Error_e(const am_sinkID_t SinkID, const am_mainVolume_t newVolume)); + MOCK_METHOD2(hookUserVolumeStep, + am_Error_e(const am_sinkID_t SinkID, const int16_t increment)); + MOCK_METHOD2(hookUserSetSinkMuteState, + am_Error_e(const am_sinkID_t sinkID, const am_MuteState_e muteState)); + MOCK_METHOD2(hookSystemRegisterDomain, + am_Error_e(const am_Domain_s& domainData, am_domainID_t& domainID)); + MOCK_METHOD1(hookSystemDeregisterDomain, + am_Error_e(const am_domainID_t domainID)); + MOCK_METHOD1(hookSystemDomainRegistrationComplete, + void(const am_domainID_t domainID)); + MOCK_METHOD2(hookSystemRegisterSink, + am_Error_e(const am_Sink_s& sinkData, am_sinkID_t& sinkID)); + MOCK_METHOD1(hookSystemDeregisterSink, + am_Error_e(const am_sinkID_t sinkID)); + MOCK_METHOD2(hookSystemRegisterSource, + am_Error_e(const am_Source_s& sourceData, am_sourceID_t& sourceID)); + MOCK_METHOD1(hookSystemDeregisterSource, + am_Error_e(const am_sourceID_t sourceID)); + MOCK_METHOD2(hookSystemRegisterGateway, + am_Error_e(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID)); + MOCK_METHOD1(hookSystemDeregisterGateway, + am_Error_e(const am_gatewayID_t gatewayID)); + MOCK_METHOD2(hookSystemRegisterCrossfader, + am_Error_e(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID)); + MOCK_METHOD1(hookSystemDeregisterCrossfader, + am_Error_e(const am_crossfaderID_t crossfaderID)); + MOCK_METHOD3(hookSystemSinkVolumeTick, + void(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)); + MOCK_METHOD3(hookSystemSourceVolumeTick, + void(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)); + MOCK_METHOD2(hookSystemInterruptStateChange, + void(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)); + MOCK_METHOD2(hookSystemSinkAvailablityStateChange, + void(const am_sinkID_t sinkID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemSourceAvailablityStateChange, + void(const am_sourceID_t sourceID, const am_Availability_s& availability)); + MOCK_METHOD2(hookSystemDomainStateChange, + void(const am_domainID_t domainID, const am_DomainState_e state)); + MOCK_METHOD1(hookSystemReceiveEarlyData, + void(const std::vector& data)); + MOCK_METHOD1(hookSystemSpeedChange, + void(const am_speed_t speed)); + MOCK_METHOD2(hookSystemTimingInformationChanged, + void(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time)); + MOCK_METHOD2(cbAckConnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD2(cbAckDisconnect, + void(const am_Handle_s handle, const am_Error_e errorID)); + MOCK_METHOD3(cbAckCrossFade, + void(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSinkVolumeChange, + void(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)); + MOCK_METHOD3(cbAckSetSourceVolumeChange, + void(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceState, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSourceSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperties, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD2(cbAckSetSinkSoundProperty, + void(const am_Handle_s handle, const am_Error_e error)); + MOCK_METHOD5(getConnectionFormatChoice, + am_Error_e(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector listPossibleConnectionFormats, std::vector& listPrioConnectionFormats)); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); + MOCK_METHOD0(confirmCommandReady, + void()); + MOCK_METHOD0(confirmRoutingReady, + void()); + MOCK_METHOD0(confirmCommandRundown, + void()); + MOCK_METHOD0(confirmRoutingRundown, + void()); + }; diff --git a/AudioManagerDaemon/test/routing/routingTest.cpp b/AudioManagerDaemon/test/routing/routingTest.cpp index 5b073d2..aa3f333 100644 --- a/AudioManagerDaemon/test/routing/routingTest.cpp +++ b/AudioManagerDaemon/test/routing/routingTest.cpp @@ -42,6 +42,7 @@ using namespace testing; routingTest::routingTest() : plistRoutingPluginDirs(), // plistCommandPluginDirs(), // + pSocketHandler(), // pDatabaseHandler(std::string(":memory:")), // pControlSender(std::string("")), // pRouter(&pDatabaseHandler, &pControlSender), // @@ -52,8 +53,8 @@ routingTest::routingTest() : pRoutingInterfaceBackdoor(), // pCommandInterfaceBackdoor(), // pControlInterfaceBackdoor(), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pRouter), // - pObserver(&pCommandSender, &pRoutingSender) + pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender,&pSocketHandler, &pRouter), // + pObserver(&pCommandSender, &pRoutingSender, &pSocketHandler) { pDatabaseHandler.registerObserver(&pObserver); pCommandInterfaceBackdoor.injectInterface(&pCommandSender, &pMockInterface); @@ -80,8 +81,6 @@ arg4=arg3; //test that checks just sinks and source in a domain but connectionformats do not match TEST_F(routingTest,simpleRoute2withDomainNoMatchFormats) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -143,8 +142,6 @@ TEST_F(routingTest,simpleRoute2withDomainNoMatchFormats) //test that checks just sinks and source in a domain TEST_F(routingTest,simpleRoute2withDomain) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -207,8 +204,8 @@ TEST_F(routingTest,simpleRoute2withDomain) //test that checks just 2 domains, one sink one source with only one connection format each TEST_F(routingTest,simpleRoute2DomainsOnlyFree) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -315,8 +312,8 @@ TEST_F(routingTest,simpleRoute2DomainsOnlyFree) //test that checks just 2 domains, one sink one source with only one connection format each TEST_F(routingTest,simpleRoute2DomainsOnlyFreeNotFree) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -439,8 +436,7 @@ TEST_F(routingTest,simpleRoute2DomainsOnlyFreeNotFree) //test that checks 3 domains, one sink one source, longer lists of connectionformats. TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats_2) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -600,8 +596,6 @@ TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats_2) //test that checks 3 domains, one sink one source, longer lists of connectionformats. TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats_1) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -757,8 +751,6 @@ TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats_1) //test that checks 3 domains, one sink one source, longer lists of connectionformats. TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -908,8 +900,6 @@ TEST_F(routingTest,simpleRoute3DomainsListConnectionFormats) //test that checks 4 domains, one sink and one source but there are 2 routes because there are 2 gateways TEST_F(routingTest,simpleRoute4Domains2Routes) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(5); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(5); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -1144,8 +1134,7 @@ TEST_F(routingTest,simpleRoute4Domains2Routes) //test that checks 3 domains, one sink one source but the connectionformat of third domains do not fit. TEST_F(routingTest,simpleRoute3DomainsNoConnection) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -1289,8 +1278,8 @@ TEST_F(routingTest,simpleRoute3DomainsNoConnection) //test that checks just 2 domains, one sink one source with only one connection format each TEST_F(routingTest,simpleRoute2Domains) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -1397,8 +1386,8 @@ TEST_F(routingTest,simpleRoute2Domains) //test that checks just 2 domains, one sink one source but the connectionformat of source TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(2); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(2); + + EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -1503,8 +1492,6 @@ TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) //test that checks 3 domains, one sink one source. TEST_F(routingTest,simpleRoute3Domains) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains @@ -1650,8 +1637,6 @@ TEST_F(routingTest,simpleRoute3Domains) //test that checks 4 domains, one sink and one source. TEST_F(routingTest,simpleRoute4Domains) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(4); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(4); EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); //initialize 2 domains diff --git a/AudioManagerDaemon/test/routing/routingTest.h b/AudioManagerDaemon/test/routing/routingTest.h index 915c239..64ed8c5 100644 --- a/AudioManagerDaemon/test/routing/routingTest.h +++ b/AudioManagerDaemon/test/routing/routingTest.h @@ -41,6 +41,7 @@ #include "DatabaseObserver.h" #include "RoutingSender.h" #include "Router.h" +#include "SocketHandler.h" #include "../ControlInterfaceBackdoor.h" #include "../CommandInterfaceBackdoor.h" #include "../CommonFunctions.h" @@ -55,6 +56,7 @@ public: ~routingTest(); std::vector plistRoutingPluginDirs; std::vector plistCommandPluginDirs; + SocketHandler pSocketHandler; DatabaseHandler pDatabaseHandler; ControlSender pControlSender; Router pRouter; diff --git a/AudioManagerDaemon/test/routingInterface/CMakeLists.txt b/AudioManagerDaemon/test/routingInterface/CMakeLists.txt index 5b5da3c..fbb4ac1 100644 --- a/AudioManagerDaemon/test/routingInterface/CMakeLists.txt +++ b/AudioManagerDaemon/test/routingInterface/CMakeLists.txt @@ -54,6 +54,9 @@ file(GLOB ROUTING_INTERFACE_SRCS_CXX "../../src/ControlSender.cpp" "../CommonFunctions.cpp" "../../src/DLTWrapper.cpp" + "../../src/SocketHandler.cpp" + "../../src/RoutingReceiver.cpp" + "../../src/CommandReceiver.cpp" "*.cpp" ) diff --git a/AudioManagerDaemon/test/routingInterface/MockRoutingInterface.h b/AudioManagerDaemon/test/routingInterface/MockRoutingInterface.h index 6c93507..2c21fe6 100644 --- a/AudioManagerDaemon/test/routingInterface/MockRoutingInterface.h +++ b/AudioManagerDaemon/test/routingInterface/MockRoutingInterface.h @@ -34,12 +34,12 @@ namespace am { class MockRoutingSendInterface : public RoutingSendInterface { public: - MOCK_METHOD1(startupRoutingInterface, - void(RoutingReceiveInterface* routingreceiveinterface)); - MOCK_METHOD0(routingInterfacesReady, - void()); - MOCK_METHOD0(routingInterfacesRundown, - void()); + MOCK_METHOD1(startupInterface, + am_Error_e(RoutingReceiveInterface* routingreceiveinterface)); + MOCK_METHOD1(setRoutingReady, + void(const uint16_t handle)); + MOCK_METHOD1(setRoutingRundown, + void(const uint16_t handle)); MOCK_METHOD1(asyncAbort, am_Error_e(const am_Handle_s handle)); MOCK_METHOD5(asyncConnect, @@ -66,9 +66,10 @@ class MockRoutingSendInterface : public RoutingSendInterface { am_Error_e(const am_domainID_t domainID, const am_DomainState_e domainState)); MOCK_CONST_METHOD1(returnBusName, am_Error_e(std::string& BusName)); - MOCK_CONST_METHOD0(getInterfaceVersion, - uint16_t()); + MOCK_CONST_METHOD1(getInterfaceVersion, + void(std::string& version)); }; + } // namespace am diff --git a/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.cpp b/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.cpp index 33aa7f6..a827ebe 100644 --- a/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.cpp +++ b/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.cpp @@ -32,6 +32,7 @@ using namespace testing; routingInterfaceTest::routingInterfaceTest() : plistRoutingPluginDirs(), // plistCommandPluginDirs(), // + pSocketHandler(), // pDatabaseHandler(std::string(":memory:")), // pRoutingSender(plistRoutingPluginDirs), // pCommandSender(plistCommandPluginDirs), // @@ -40,8 +41,8 @@ routingInterfaceTest::routingInterfaceTest() : pMockInterface(), // pRoutingInterfaceBackdoor(), // pCommandInterfaceBackdoor(), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pRouter), // - pObserver(&pCommandSender, &pRoutingSender) + pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pSocketHandler, &pRouter), // + pObserver(&pCommandSender, &pRoutingSender, &pSocketHandler) { pDatabaseHandler.registerObserver(&pObserver); pRoutingInterfaceBackdoor.unloadPlugins(&pRoutingSender); diff --git a/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.h b/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.h index 0608eb4..f102221 100644 --- a/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.h +++ b/AudioManagerDaemon/test/routingInterface/routingInterfaceTest.h @@ -37,6 +37,7 @@ #include "ControlReceiver.h" #include "ControlSender.h" #include "DatabaseObserver.h" +#include "SocketHandler.h" #include "Router.h" #include "../RoutingInterfaceBackdoor.h" #include "../CommandInterfaceBackdoor.h" @@ -52,6 +53,7 @@ public: ~routingInterfaceTest(); std::vector plistRoutingPluginDirs; std::vector plistCommandPluginDirs; + SocketHandler pSocketHandler; DatabaseHandler pDatabaseHandler; RoutingSender pRoutingSender; CommandSender pCommandSender; diff --git a/AudioManagerDaemon/test/sockethandler/sockethandlerTest.h b/AudioManagerDaemon/test/sockethandler/sockethandlerTest.h index d2d1bc6..abb8ace 100644 --- a/AudioManagerDaemon/test/sockethandler/sockethandlerTest.h +++ b/AudioManagerDaemon/test/sockethandler/sockethandlerTest.h @@ -41,7 +41,7 @@ public: UNIX, INET }; SamplePlugin(SocketHandler *mySocketHandler, sockType_e socketType); - virtual ~SamplePlugin() + ~SamplePlugin() { } ; @@ -79,7 +79,7 @@ class sockethandlerTest: public ::testing::Test { public: sockethandlerTest(); - virtual ~sockethandlerTest(); + ~sockethandlerTest(); void SetUp(); void TearDown(); }; diff --git a/AudioManagerDaemon/test/telnetserver/CAmTelnetServerTest.cpp b/AudioManagerDaemon/test/telnetserver/CAmTelnetServerTest.cpp index d3d621e..d727fff 100644 --- a/AudioManagerDaemon/test/telnetserver/CAmTelnetServerTest.cpp +++ b/AudioManagerDaemon/test/telnetserver/CAmTelnetServerTest.cpp @@ -88,11 +88,11 @@ void MyEnvironment::setSocketHandler(SocketHandler* pSocketHandler) //startup all the Plugins and Interfaces mControlSender.startupController(mpControlReceiver); - mCommandSender.startupInterface(mpCommandReceiver); - mRoutingSender.startupRoutingInterface(mpRoutingReceiver); + mCommandSender.startupInterfaces(mpCommandReceiver); + mRoutingSender.startupInterfaces(mpRoutingReceiver); //when the routingInterface is done, all plugins are loaded: - mControlSender.hookAllPluginsLoaded(); + mControlSender.setControllerReady(); // Starting TelnetServer mpTelnetServer = new TelnetServer(mpSocketHandler,&mCommandSender,mpCommandReceiver,&mRoutingSender,mpRoutingReceiver,&mControlSender,mpControlReceiver,&mDatabasehandler,&mRouter,servPort,3); -- cgit v1.2.1