summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/test/AmControlInterfaceTest
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerDaemon/test/AmControlInterfaceTest')
-rw-r--r--AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.cpp662
-rw-r--r--AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.h76
-rw-r--r--AudioManagerDaemon/test/AmControlInterfaceTest/CMakeLists.txt95
3 files changed, 0 insertions, 833 deletions
diff --git a/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.cpp b/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.cpp
deleted file mode 100644
index 9f58a5a..0000000
--- a/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.cpp
+++ /dev/null
@@ -1,662 +0,0 @@
-/**
- * SPDX license identifier: MPL-2.0
- *
- * Copyright (C) 2012, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Christian Linke, christian.linke@bmw.de BMW 2011,2012
- *
- * For further information see http://www.genivi.org/.
- *
- */
-
-#include "CAmControlInterfaceTest.h"
-#include <algorithm>
-#include <string>
-#include <vector>
-#include <set>
-#include "CAmDltWrapper.h"
-
-using namespace am;
-using namespace testing;
-
-DLT_DECLARE_CONTEXT(AudioManager)
-
-ACTION(returnResyncConnection)
-{
- std::vector<am_Connection_s> listConnections;
- am_Connection_s conn;
- conn.sinkID=1;
- conn.sourceID=1;
- conn.connectionFormat=CF_GENIVI_ANALOG;
- listConnections.push_back(conn);
- arg1=listConnections;
-}
-
-CAmControlInterfaceTest::CAmControlInterfaceTest() :
- pSocketHandler(), //
- plistCommandPluginDirs(), //
- plistRoutingPluginDirs(), //
- pDatabaseHandler(), //
- pRoutingSender(plistRoutingPluginDirs), //RoutingReceiver
- pCommandSender(plistCommandPluginDirs), //
- pMockControlInterface(), //
- pMockRoutingInterface(), //
- pRoutingInterfaceBackdoor(), //
- pCommandInterfaceBackdoor(), //
- pControlInterfaceBackdoor(), //
- pControlSender(), //
- pRouter(&pDatabaseHandler,&pControlSender), //
- pDatabaseObserver(&pCommandSender, &pRoutingSender, &pSocketHandler), //
- pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pSocketHandler, &pRouter), //
- pRoutingReceiver(&pDatabaseHandler, &pRoutingSender, &pControlSender, &pSocketHandler)
-{
- CAmDltWrapper::instance(0)->registerApp("AudioManagerDeamon", "AudioManagerDeamon");
- CAmDltWrapper::instance()->registerContext(AudioManager, "Main", "Main Context");
- logInfo("The Audiomanager is started");
- pDatabaseHandler.registerObserver(&pDatabaseObserver);
- pControlInterfaceBackdoor.replaceController(&pControlSender, &pMockControlInterface);
- pRoutingInterfaceBackdoor.injectInterface(&pRoutingSender, &pMockRoutingInterface, "mock");
-
-}
-
-CAmControlInterfaceTest::~CAmControlInterfaceTest()
-{
-}
-
-void CAmControlInterfaceTest::SetUp()
-{
- logInfo("RoutingSendInterface Test started");
-}
-
-void CAmControlInterfaceTest::TearDown()
-{
-}
-
-TEST_F(CAmControlInterfaceTest,registerDomain)
-{
-
- am_Domain_s domain;
- am_domainID_t domainID;
- pCF.createDomain(domain);
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemRegisterDomain(_,_)).WillRepeatedly(DoAll(SetArgReferee<1>(2), Return(E_OK)));
- ASSERT_EQ(E_OK, pRoutingReceiver.registerDomain(domain,domainID));
- ASSERT_EQ(domainID, 2);
-}
-
-TEST_F(CAmControlInterfaceTest,deregisterDomain)
-{
- am_domainID_t domainID = 34;
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemDeregisterDomain(34)).WillRepeatedly(Return(E_OK));
- ASSERT_EQ(E_OK, pRoutingReceiver.deregisterDomain(domainID));
-}
-
-TEST_F(CAmControlInterfaceTest,registerSink)
-{
- am_Sink_s sink;
- am_sinkID_t sinkID;
- pCF.createSink(sink);
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemRegisterSink(_,_)).WillRepeatedly(DoAll(SetArgReferee<1>(2), Return(E_OK)));
- ASSERT_EQ(E_OK, pRoutingReceiver.registerSink(sink,sinkID));
- ASSERT_EQ(sinkID, 2);
-}
-
-TEST_F(CAmControlInterfaceTest,deregisterSink)
-{
- am_sinkID_t sinkID = 12;
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemDeregisterSink(12)).WillRepeatedly(Return(E_OK));
- ASSERT_EQ(E_OK, pRoutingReceiver.deregisterSink(sinkID));
-}
-
-TEST_F(CAmControlInterfaceTest,registerSource)
-{
- am_Source_s source;
- am_sourceID_t sourceID;
- pCF.createSource(source);
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemRegisterSource(_,_)).WillRepeatedly(DoAll(SetArgReferee<1>(2), Return(E_OK)));
- ASSERT_EQ(E_OK, pRoutingReceiver.registerSource(source,sourceID));
- ASSERT_EQ(sourceID, 2);
-}
-
-TEST_F(CAmControlInterfaceTest,deregisterSource)
-{
- am_sourceID_t sourceID = 12;
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemDeregisterSource(12)).WillRepeatedly(Return(E_OK));
- ASSERT_EQ(E_OK, pRoutingReceiver.deregisterSource(sourceID));
-}
-
-TEST_F(CAmControlInterfaceTest,registerGateway)
-{
- am_Gateway_s gateway;
- am_gatewayID_t gatewayID;
- pCF.createGateway(gateway);
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemRegisterGateway(_,_)).WillRepeatedly(DoAll(SetArgReferee<1>(2), Return(E_OK)));
- ASSERT_EQ(E_OK, pRoutingReceiver.registerGateway(gateway,gatewayID));
- ASSERT_EQ(gatewayID, 2);
-}
-
-TEST_F(CAmControlInterfaceTest,deregisterGateway)
-{
- am_gatewayID_t gatewayID = 12;
-
- //When we run this test, we expect the call on the control interface
- EXPECT_CALL(pMockControlInterface,hookSystemDeregisterGateway(12)).WillRepeatedly(Return(E_OK));
- ASSERT_EQ(E_OK, pRoutingReceiver.deregisterGateway(gatewayID));
-}
-
-TEST_F(CAmControlInterfaceTest,ackConnect)
-{
- am_connectionID_t connectionID;
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Connection_s> connectionList;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
-
- //prepare the stage
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //when asyncConnect is called, we expect a call on the routingInterface
- EXPECT_CALL(pMockRoutingInterface,asyncConnect(_,1,2,2,CF_GENIVI_STEREO)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.connect(handle,connectionID,CF_GENIVI_STEREO,2,2));
-
- //The handle should have the correct type
- ASSERT_EQ(handle.handleType, H_CONNECT);
- ASSERT_EQ(handle.handle, 1);
- ASSERT_EQ(connectionID, 1);
-
- //The list of handles shall have the handle inside
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, handle.handleType);
-
- //we check the list of connections - but it must be empty because the ack did not arrive yet
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(connectionList.empty());
-
- //finally we answer via the RoutingInterface and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckConnect(_,E_OK)).Times(1);
- pRoutingReceiver.ackConnect(handle, connectionID, E_OK);
-
- //the list of handles must be empty now
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //but the connection must be in the connectionlist
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(!connectionList.empty());
-
- //no we try the same, but do expect a no_change answer directly and no call because connection already exists
- //ASSERT_EQ(E_ALREADY_EXISTS, pControlReceiver.connect(handle,connectionID,CF_GENIVI_STEREO,2,2));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,ackDisconnect)
-{
- am_connectionID_t connectionID;
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Connection_s> connectionList;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
-
- //prepare the stage
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //now we first need to connect, we expect a call on the routing interface
- EXPECT_CALL(pMockRoutingInterface,asyncConnect(_,1,2,2,CF_GENIVI_STEREO)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.connect(handle,connectionID,CF_GENIVI_STEREO,2,2));
-
- //answer with an ack to insert the connection in the database
- EXPECT_CALL(pMockControlInterface,cbAckConnect(_,E_OK)).Times(1);
- pRoutingReceiver.ackConnect(handle, connectionID, E_OK);
-
- //now we can start to disconnect and expect a call on the routing interface
- EXPECT_CALL(pMockRoutingInterface,asyncDisconnect(_,1)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.disconnect(handle,1));
-
- //during the disconnection, the connection is still in the list!
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(!connectionList.empty());
-
- //then we fire the ack and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckDisconnect(_,E_OK)).Times(1);
- pRoutingReceiver.ackDisconnect(handle, connectionID, E_OK);
-
- //make sure the handle is gone
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //make sure the connection is gone
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(connectionList.empty());
-
- //Now let's try to disconnect what is not existing...
- ASSERT_EQ(E_NON_EXISTENT, pControlReceiver.disconnect(handle,2));
-}
-
-TEST_F(CAmControlInterfaceTest,ackDisconnectFailAndRetry)
-{
- logInfo("ackDisconnectFailAndRetry test started");
- am_connectionID_t connectionID;
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Connection_s> connectionList;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
-
- //prepare the stage
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //now we first need to connect, we expect a call on the routing interface
- EXPECT_CALL(pMockRoutingInterface,asyncConnect(_,1,2,2,CF_GENIVI_STEREO)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.connect(handle,connectionID,CF_GENIVI_STEREO,2,2));
-
- //answer with an ack to insert the connection in the database
- EXPECT_CALL(pMockControlInterface,cbAckConnect(_,E_OK)).Times(1);
- pRoutingReceiver.ackConnect(handle, connectionID, E_OK);
-
- //now we can start to disconnect and expect a call on the routing interface
- EXPECT_CALL(pMockRoutingInterface,asyncDisconnect(_,1)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.disconnect(handle,1));
-
- //during the disconnection, the connection is still in the list!
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(!connectionList.empty());
-
- //then we fire the ack and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckDisconnect(_,E_NON_EXISTENT)).Times(1);
- pRoutingReceiver.ackDisconnect(handle, connectionID+1, E_NON_EXISTENT);
-
- //make sure the handle is gone
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //make sure the connection is still there
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_FALSE(connectionList.empty());
-
- ASSERT_TRUE(pDatabaseHandler.existConnectionID(1));
-
- //Now let's try to disconnect now
- EXPECT_CALL(pMockRoutingInterface,asyncDisconnect(_,1)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.disconnect(handle,1));
- logInfo("ackDisconnectFailAndRetry test finished");
-}
-
-TEST_F(CAmControlInterfaceTest,setSourceState)
-{
-
- am_Source_s source;
- am_sourceID_t sourceID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- am_SourceState_e state;
- pCF.createSource(source);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- source.sourceID = 2;
- source.domainID = DYNAMIC_ID_BOUNDARY;
-
- //prepare the stage
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID));
-
- //we set the sourcestate and expect a call on the routingInterface
- EXPECT_CALL(pMockRoutingInterface,asyncSetSourceState(_,2,SS_PAUSED)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.setSourceState(handle,source.sourceID,SS_PAUSED));
-
- //we want our handle in the list and let the type be the right one
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, H_SETSOURCESTATE);
-
- //the state must be unchanged because did not get the ack
- ASSERT_EQ(E_OK, pDatabaseHandler.getSoureState(source.sourceID,state));
- ASSERT_EQ(state, SS_ON);
-
- //now we sent out the ack and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckSetSourceState(_,E_OK)).Times(1);
- pRoutingReceiver.ackSetSourceState(handle, E_OK);
-
- //finally we need the sourcestate to be changed
- ASSERT_EQ(E_OK, pDatabaseHandler.getSoureState(source.sourceID,state));
- ASSERT_EQ(state, SS_PAUSED);
-
- //make sure the handle is gone
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //we try again but expect a no change error
- //ASSERT_EQ(E_NO_CHANGE, pControlReceiver.setSourceState(handle,source.sourceID,SS_PAUSED));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,SetSinkVolumeChange)
-{
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- am_volume_t volume;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
- sink.volume = 10;
-
- //setup environment, we need a domain and a sink
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //set the volume and expect a call on the routing interface
- EXPECT_CALL(pMockRoutingInterface,asyncSetSinkVolume(_,2,11,RAMP_GENIVI_DIRECT,23)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.setSinkVolume(handle,sinkID,11,RAMP_GENIVI_DIRECT,23));
-
- //check the list of handles. The handle must be in there and have the right type
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, H_SETSINKVOLUME);
-
- //now we read out the volume, but we expect no change because the ack did not arrive yet
- ASSERT_EQ(E_OK, pDatabaseHandler.getSinkVolume(sinkID,volume));
- ASSERT_EQ(sink.volume, volume);
-
- //lets send the answer and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckSetSinkVolumeChange(_,11,E_OK)).Times(1);
- pRoutingReceiver.ackSetSinkVolumeChange(handle, 11, E_OK);
-
- //finally, the new value must be in the database
- ASSERT_EQ(E_OK, pDatabaseHandler.getSinkVolume(sinkID,volume));
- ASSERT_EQ(11, volume);
-
- //and the handle must be destroyed
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //Now we try again, but the value is unchanged
- //ASSERT_EQ(E_NO_CHANGE, pControlReceiver.setSinkVolume(handle,sinkID,11,RAMP_GENIVI_DIRECT,23));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,ackSetSourceVolumeChange)
-{
- am_Source_s source;
- am_sourceID_t sourceID;
- am_Domain_s domain;
- am_domainID_t domainID;
- am_volume_t volume;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSource(source);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- source.sourceID = 2;
- source.domainID = DYNAMIC_ID_BOUNDARY;
- source.volume = 12;
-
- //prepare the scene
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID));
-
- //change the sinkVolume, expect a call on the routingInterface
- EXPECT_CALL(pMockRoutingInterface,asyncSetSourceVolume(_,2,11,RAMP_GENIVI_DIRECT,23)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.setSourceVolume(handle,source.sourceID,11,RAMP_GENIVI_DIRECT,23));
-
- //check the list of handles. The handle must be in there and have the right type
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, H_SETSOURCEVOLUME);
-
- //now we read out the volume, but we expect no change because the ack did not arrive yet
- ASSERT_EQ(E_OK, pDatabaseHandler.getSourceVolume(sourceID,volume));
- ASSERT_EQ(source.volume, volume);
-
- //lets send the answer and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckSetSourceVolumeChange(_,11,E_OK)).Times(1);
- pRoutingReceiver.ackSetSourceVolumeChange(handle, 11, E_OK);
-
- //finally, the new value must be in the database
- ASSERT_EQ(E_OK, pDatabaseHandler.getSourceVolume(sourceID,volume));
- ASSERT_EQ(11, volume);
-
- //and the handle must be destroyed
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //Now we try again, but the value is unchanged
- //ASSERT_EQ(E_NO_CHANGE, pControlReceiver.setSourceVolume(handle,source.sourceID,11,RAMP_GENIVI_DIRECT,23));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,ackSetSinkSoundProperty)
-{
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- am_SoundProperty_s soundProperty;
- int16_t oldvalue;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
- soundProperty.type = SP_GENIVI_BASS;
- soundProperty.value = 244;
-
- //setup environment, we need a domain and a sink
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //change the soundproperty, expect a call on the routinginterface
- EXPECT_CALL(pMockRoutingInterface,asyncSetSinkSoundProperty(_,2,_)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.setSinkSoundProperty(handle,sink.sinkID,soundProperty));
-
- //check the list of handles. The handle must be in there and have the right type
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, H_SETSINKSOUNDPROPERTY);
-
- //read out this property. There is no change, because the ack did not arrive yet.
- ASSERT_EQ(E_OK, pDatabaseHandler.getSinkSoundPropertyValue(2,SP_GENIVI_BASS,oldvalue));
- ASSERT_EQ(sink.listSoundProperties[0].value, oldvalue);
-
- //lets send the answer and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckSetSinkSoundProperty(_,E_OK)).Times(1);
- pRoutingReceiver.ackSetSinkSoundProperty(handle, E_OK);
-
- //finally, the new value must be in the database
- ASSERT_EQ(E_OK, pDatabaseHandler.getSinkSoundPropertyValue(sinkID,SP_GENIVI_BASS,oldvalue));
- ASSERT_EQ(soundProperty.value, oldvalue);
-
- //and the handle must be destroyed
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //Now we try again, but the value is unchanged
- //ASSERT_EQ(E_NO_CHANGE, pControlReceiver.setSinkSoundProperty(handle,sink.sinkID,soundProperty));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,ackSetSourceSoundProperty)
-{
- am_Source_s source;
- am_sourceID_t sourceID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- am_SoundProperty_s soundProperty;
- int16_t oldvalue;
- pCF.createSource(source);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- source.sourceID = 2;
- source.domainID = DYNAMIC_ID_BOUNDARY;
- soundProperty.type = SP_GENIVI_BASS;
- soundProperty.value = 244;
-
- //prepare the scene
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID));
-
- //we trigger the change and wait for a call on the routinginterface
- EXPECT_CALL(pMockRoutingInterface,asyncSetSourceSoundProperty(_,2,_)).WillOnce(Return(E_OK));
- ASSERT_EQ(E_OK, pControlReceiver.setSourceSoundProperty(handle,source.sourceID,soundProperty));
-
- //check the list of handles. The handle must be in there and have the right type
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_EQ(handlesList[0].handle, handle.handle);
- ASSERT_EQ(handlesList[0].handleType, H_SETSOURCESOUNDPROPERTY);
-
- //read out this property. There is no change, because the ack did not arrive yet.
- ASSERT_EQ(E_OK, pDatabaseHandler.getSourceSoundPropertyValue(2,SP_GENIVI_BASS,oldvalue));
- ASSERT_EQ(source.listSoundProperties[0].value, oldvalue);
-
- //lets send the answer and expect a call on the controlInterface
- EXPECT_CALL(pMockControlInterface,cbAckSetSourceSoundProperty(_,E_OK)).Times(1);
- pRoutingReceiver.ackSetSourceSoundProperty(handle, E_OK);
-
- //finally, the new value must be in the database
- ASSERT_EQ(E_OK, pDatabaseHandler.getSourceSoundPropertyValue(sourceID,SP_GENIVI_BASS,oldvalue));
- ASSERT_EQ(soundProperty.value, oldvalue);
-
- //and the handle must be destroyed
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
- //Now we try again, but the value is unchanged
- //ASSERT_EQ(E_NO_CHANGE, pControlReceiver.setSourceSoundProperty(handle,source.sourceID,soundProperty));
- //needed to be removed because logic changed here
-}
-
-TEST_F(CAmControlInterfaceTest,crossFading)
-{
- //todo: implement crossfading test
-}
-
-TEST_F(CAmControlInterfaceTest,resyncConnectionsTest)
-{
- am_Domain_s domain;
- am_domainID_t domainID;
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
-
- //prepare the scene
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
-
- std::vector<am_Connection_s> listConnections;
-
- EXPECT_CALL(pMockRoutingInterface,resyncConnectionState(domainID,_)).WillOnce(DoAll(returnResyncConnection(), Return(E_OK)));
- ASSERT_EQ(am_Error_e::E_OK,pControlReceiver.resyncConnectionState(domainID,listConnections));
- ASSERT_EQ(listConnections[0].sinkID,1);
- ASSERT_EQ(listConnections[0].sourceID,1);
- ASSERT_EQ(listConnections[0].connectionFormat,CF_GENIVI_ANALOG);
-}
-
-TEST_F(CAmControlInterfaceTest,ackConnectNotPossible)
-{
- am_connectionID_t connectionID;
- am_Sink_s sink;
- am_sinkID_t sinkID;
- am_Domain_s domain;
- am_domainID_t domainID;
- std::vector<am_Connection_s> connectionList;
- std::vector<am_Handle_s> handlesList;
- am_Handle_s handle;
- pCF.createSink(sink);
- pCF.createDomain(domain);
- domain.name = "mock";
- domain.busname = "mock";
- sink.sinkID = 2;
- sink.domainID = DYNAMIC_ID_BOUNDARY;
-
- //prepare the stage
- ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain,domainID));
- ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
-
- //when asyncConnect is called, we expect a call on the routingInterface
- EXPECT_CALL(pMockRoutingInterface,asyncConnect(_,1,2,2,CF_GENIVI_STEREO)).WillOnce(Return(E_COMMUNICATION));
- ASSERT_EQ(E_COMMUNICATION, pControlReceiver.connect(handle,connectionID,CF_GENIVI_STEREO,2,2));
-
- //The list of handles shall be empty
- ASSERT_EQ(E_OK, pControlReceiver.getListHandles(handlesList));
- ASSERT_TRUE(handlesList.empty());
-
-
- ASSERT_EQ(E_OK, pDatabaseHandler.getListConnections(connectionList));
- ASSERT_TRUE(connectionList.empty());
-
-}
-
-int main(int argc, char **argv)
-{
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}
-
diff --git a/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.h b/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.h
deleted file mode 100644
index b7fa27a..0000000
--- a/AudioManagerDaemon/test/AmControlInterfaceTest/CAmControlInterfaceTest.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * SPDX license identifier: MPL-2.0
- *
- * Copyright (C) 2012, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Christian Linke, christian.linke@bmw.de BMW 2011,2012
- *
- * For further information see http://www.genivi.org/.
- *
- */
-
-#ifndef ROUTINGINTERFACETEST_H_
-#define ROUTINGINTERFACETEST_H_
-
-#include "gtest/gtest.h"
-#include "gmock/gmock.h"
-
-//#include "CAmDatabaseHandlerSQLite.h"
-#include "CAmDatabaseHandlerMap.h"
-#include "CAmControlReceiver.h"
-#include "CAmRoutingReceiver.h"
-#include "CAmDatabaseObserver.h"
-#include "CAmControlSender.h"
-#include "CAmRoutingSender.h"
-#include "CAmRouter.h"
-#include "../IAmRoutingBackdoor.h"
-#include "../IAmCommandBackdoor.h"
-#include "../IAmControlBackdoor.h"
-#include "../CAmCommonFunctions.h"
-#include "../MockIAmRoutingSend.h"
-#include "../MockIAmControlSend.h"
-#include "CAmSocketHandler.h"
-
-namespace am
-{
-
-class CAmControlInterfaceTest: public ::testing::Test
-{
-public:
- CAmControlInterfaceTest();
- ~CAmControlInterfaceTest();
- CAmSocketHandler pSocketHandler;
- std::vector<std::string> plistCommandPluginDirs;
- std::vector<std::string> plistRoutingPluginDirs;
- CAmDatabaseHandlerMap pDatabaseHandler;
- CAmRoutingSender pRoutingSender;
- CAmCommandSender pCommandSender;
- MockIAmControlSend pMockControlInterface;
- MockIAmRoutingSend pMockRoutingInterface;
- IAmRoutingBackdoor pRoutingInterfaceBackdoor;
- IAmCommandBackdoor pCommandInterfaceBackdoor;
- IAmControlBackdoor pControlInterfaceBackdoor;
- CAmControlSender pControlSender;
- CAmRouter pRouter;
- CAmDatabaseObserver pDatabaseObserver;
- CAmControlReceiver pControlReceiver;
- CAmRoutingReceiver pRoutingReceiver;
- CAmCommonFunctions pCF;
- void SetUp();
- void TearDown();
-};
-
-}
-
-#endif /* ROUTINGINTERFACETEST_H_ */
diff --git a/AudioManagerDaemon/test/AmControlInterfaceTest/CMakeLists.txt b/AudioManagerDaemon/test/AmControlInterfaceTest/CMakeLists.txt
deleted file mode 100644
index b21ca91..0000000
--- a/AudioManagerDaemon/test/AmControlInterfaceTest/CMakeLists.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (C) 2012, BMW AG
-#
-# This file is part of GENIVI Project AudioManager.
-#
-# Contributions are licensed to the GENIVI Alliance under one or more
-# Contribution License Agreements.
-#
-# copyright
-# This Source Code Form is subject to the terms of the
-# Mozilla Public License, v. 2.0. if a copy of the MPL was not distributed with
-# this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# author Christian Linke, christian.linke@bmw.de BMW 2011,2012
-#
-# For further information see http://www.genivi.org/.
-#
-
-cmake_minimum_required(VERSION 2.8.8)
-
-project(AmControlInterfaceTest)
-
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNIT_TEST=1 -DDLT_CONTEXT=AudioManager")
-
-set (AM_LINK_LIBS
- ${CMAKE_DL_LIBS}
- AudioManagerUtilities
- rt)
-
-IF (WITH_CAPI_WRAPPER)
- set (AM_LINK_LIBS
- ${AM_LINK_LIBS}
- -Wl,--as-needed CommonAPI
- )
-ENDIF (WITH_CAPI_WRAPPER)
-
-if(WITH_DATABASE_STORAGE)
- pkg_check_modules(SQLITE REQUIRED sqlite3)
- set (AM_LINK_LIBS
- ${AM_LINK_LIBS}
- ${SQLITE_LIBRARIES})
-endif(WITH_DATABASE_STORAGE)
-
-if(WITH_DLT)
- pkg_check_modules(DLT REQUIRED automotive-dlt>=2.2.0)
- set (AM_LINK_LIBS
- ${AM_LINK_LIBS}
- ${DLT_LIBRARIES})
-endif(WITH_DLT)
-
-INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_BINARY_DIR}
- ${AUDIO_INCLUDE_FOLDER}
- ${STD_INCLUDE_DIRS}
- ${INCLUDE_FOLDER}
- ${GOOGLE_TEST_INCLUDE_DIR}
- ${GMOCK_INCLUDE_DIR})
-
-if(WITH_DLT)
- INCLUDE_DIRECTORIES(
- ${INCLUDE_DIRECTORIES}
- ${DLT_INCLUDE_DIRS})
-endif(WITH_DLT)
-
-
-file(GLOB CONTROL_INTERFACE_SRCS_CXX
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmDatabaseHandlerMap.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmDatabaseObserver.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRoutingSender.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRoutingReceiver.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmCommandSender.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmCommandReceiver.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmControlReceiver.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmControlSender.cpp"
- "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRouter.cpp"
- "../CAmCommonFunctions.cpp"
- "*.cpp"
-)
-
-add_executable(AmControlInterfaceTest ${CONTROL_INTERFACE_SRCS_CXX})
-
-TARGET_LINK_LIBRARIES(AmControlInterfaceTest
- ${AM_LINK_LIBS}
- gtest
- gmock)
-
-ADD_DEPENDENCIES(AmControlInterfaceTest gtest gmock AudioManagerUtilities)
-
-INSTALL(TARGETS AmControlInterfaceTest
- DESTINATION ${TEST_EXECUTABLE_INSTALL_PATH}
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
- COMPONENT tests)
-
-
-
-