diff options
Diffstat (limited to 'AudioManagerDaemon/test/database/databaseTest.cpp')
-rw-r--r-- | AudioManagerDaemon/test/database/databaseTest.cpp | 203 |
1 files changed, 163 insertions, 40 deletions
diff --git a/AudioManagerDaemon/test/database/databaseTest.cpp b/AudioManagerDaemon/test/database/databaseTest.cpp index a1580fe..f8d69fe 100644 --- a/AudioManagerDaemon/test/database/databaseTest.cpp +++ b/AudioManagerDaemon/test/database/databaseTest.cpp @@ -24,7 +24,6 @@ */ #include "databaseTest.h" -#include "DatabaseObserver.h" using namespace am; @@ -36,8 +35,19 @@ extern bool equalClassProperties (const am_ClassProperty_s a,const am_ClassPrope extern std::string int2string(int i); databaseTest::databaseTest() - :pDatabaseHandler(std::string(":memory:")) + :plistRoutingPluginDirs(), + plistCommandPluginDirs(), + pDatabaseHandler(std::string(":memory:")), + pRoutingSender(plistRoutingPluginDirs), + pCommandSender(plistCommandPluginDirs), + pMockInterface(), + pRoutingInterfaceBackdoor(), + pCommandInterfaceBackdoor(), + pControlReceiver(&pDatabaseHandler,&pRoutingSender,&pCommandSender), + pObserver(&pCommandSender,&pRoutingSender) { + pDatabaseHandler.registerObserver(&pObserver); + pCommandInterfaceBackdoor.injectInterface(&pCommandSender,&pMockInterface); } databaseTest::~databaseTest() @@ -52,6 +62,10 @@ void databaseTest::createMainConnectionSetup() am_Sink_s sink; std::vector<am_Connection_s> 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++) { am_sinkID_t forgetSink; @@ -95,6 +109,8 @@ void databaseTest::createMainConnectionSetup() pCF.createMainConnection(mainConnection,route); //enter mainconnection in database + EXPECT_CALL(pMockInterface,cbNumberOfMainConnectionsChanged()).Times(1); + EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); ASSERT_EQ(E_OK,pDatabaseHandler.enterMainConnectionDB(mainConnection,mainConnectionID))<< "ERROR: database error"; ASSERT_NE(0,mainConnectionID)<< "ERROR: connectionID zero"; @@ -120,8 +136,6 @@ void databaseTest::SetUp() DLT_REGISTER_APP("Dtest","AudioManagerDeamon"); DLT_REGISTER_CONTEXT(AudioManager,"Main","Main Context"); DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("Database Test started ")); - DatabaseObserver *observer=NULL; - pDatabaseHandler.registerObserver(observer); } void databaseTest::TearDown() @@ -141,8 +155,15 @@ TEST_F(databaseTest,sourceState) std::vector<am_Source_s> listSources; pCF.createSource(source); 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 ASSERT_EQ(E_OK,pDatabaseHandler.changeSourceState(sourceID,SS_ON)); + + //read out the changed values ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); ASSERT_EQ(listSources[0].sourceState,SS_ON); } @@ -154,7 +175,12 @@ TEST_F(databaseTest,sinkVolumeChange) std::vector<am_Sink_s> listSinks; pCF.createSink(sink); 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 ASSERT_EQ(E_OK,pDatabaseHandler.changeSinkVolume(sinkID,34)); ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks)); ASSERT_EQ(listSinks[0].volume,34); @@ -167,7 +193,12 @@ TEST_F(databaseTest,sourceVolumeChange) std::vector<am_Source_s> listSources; pCF.createSource(source); 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 ASSERT_EQ(E_OK,pDatabaseHandler.changeSourceVolume(sourceID,34)); ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); ASSERT_EQ(listSources[0].volume,34); @@ -176,19 +207,32 @@ TEST_F(databaseTest,sourceVolumeChange) TEST_F(databaseTest, peekSource) { std::vector<am_Source_s> listSources; - am_sourceID_t sourceID; - am_sourceID_t source2ID; + am_sourceID_t sourceID, source2ID, source3ID; am_Source_s source; 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 ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); ASSERT_TRUE(listSources.empty()); ASSERT_EQ(sourceID,100); + + //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); ASSERT_TRUE(listSources[0].sourceID==sourceID); + + //now we peek again. This time, the source exists + ASSERT_EQ(E_OK,pDatabaseHandler.peekSource(source.name,source3ID)); + ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); + ASSERT_TRUE(listSources.size()==1); + ASSERT_EQ(source3ID,source2ID); } TEST_F(databaseTest, peekSourceDouble) @@ -199,48 +243,58 @@ TEST_F(databaseTest, peekSourceDouble) am_sourceID_t source3ID; am_Source_s source; 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 ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); ASSERT_TRUE(listSources.empty()); ASSERT_EQ(sourceID,100); 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); ASSERT_TRUE(listSources[0].sourceID==sourceID); } -TEST_F(databaseTest, peekSourceExists) -{ - std::vector<am_Source_s> listSources; - am_sourceID_t sourceID; - am_sourceID_t source2ID; - am_Source_s source; - pCF.createSource(source); - ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK,pDatabaseHandler.peekSource(source.name,source2ID)); - ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources)); - ASSERT_TRUE(listSources.size()==1); - ASSERT_EQ(sourceID,source2ID); -} - TEST_F(databaseTest, peekSink) { std::vector<am_Sink_s> listSinks; - am_sinkID_t sinkID; - am_sinkID_t sink2ID; + am_sinkID_t sinkID,sink2ID, sink3ID; am_Sink_s sink; 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 ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks)); ASSERT_TRUE(listSinks.empty()); ASSERT_EQ(sinkID,100); 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); ASSERT_TRUE(listSinks[0].sinkID==sinkID); + + //now we peek again, this time, the sink exists + ASSERT_EQ(E_OK,pDatabaseHandler.peekSink(sink.name,sink3ID)); + ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks)); + ASSERT_TRUE(listSinks.size()==1); + ASSERT_EQ(sink3ID,sink2ID); } TEST_F(databaseTest, peekSinkDouble) @@ -251,50 +305,55 @@ TEST_F(databaseTest, peekSinkDouble) am_sinkID_t sink3ID; am_Sink_s sink; 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 ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks)); ASSERT_TRUE(listSinks.empty()); ASSERT_EQ(sinkID,100); 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); ASSERT_TRUE(listSinks[0].sinkID==sinkID); } -TEST_F(databaseTest, peekSinkExists) -{ - std::vector<am_Sink_s> listSinks; - am_sinkID_t sinkID; - am_sinkID_t sink2ID; - am_Sink_s sink; - pCF.createSink(sink); - ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK,pDatabaseHandler.peekSink(sink.name,sink2ID)); - ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks)); - ASSERT_TRUE(listSinks.size()==1); - ASSERT_EQ(sinkID,sink2ID); -} - - TEST_F(databaseTest,changeConnectionTimingInformationCheckMainConnection) { am_Connection_s connection; std::vector<am_Connection_s> connectionList; std::vector<am_MainConnectionType_s> mainList; pCF.createConnection(connection); + + //prepare the test, it is one mainconnection, so we expect one callback createMainConnectionSetup(); - ASSERT_EQ(-E_OK,pDatabaseHandler.getListVisibleMainConnections(mainList)); + 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)); ASSERT_EQ(mainList[0].delay,-1); + + //no go through all connections and set the delay time to 24 for each connection ASSERT_EQ(E_OK,pDatabaseHandler.getListConnections(connectionList)); std::vector<am_Connection_s>::iterator iteratorConnectionList=connectionList.begin(); for(;iteratorConnectionList<connectionList.end();++iteratorConnectionList) { ASSERT_EQ(E_OK,pDatabaseHandler.changeConnectionTimingInformation(iteratorConnectionList->sinkID,24)); } + + //we read the result again and expect that the value is now different from -1 ASSERT_EQ(E_OK,pDatabaseHandler.getListVisibleMainConnections(mainList)); - ASSERT_NE(mainList[0].delay,-1); + ASSERT_EQ(mainList[0].delay,216); } TEST_F(databaseTest,changeConnectionTimingInformation) @@ -304,9 +363,12 @@ TEST_F(databaseTest,changeConnectionTimingInformation) std::vector<am_Connection_s> connectionList; pCF.createConnection(connection); + //enter a connection ASSERT_EQ(E_OK,pDatabaseHandler.enterConnectionDB(connection,connectionID)); - ASSERT_EQ(E_OK,pDatabaseHandler.changeConnectionTimingInformation(connectionID,24)); ASSERT_EQ(E_OK,pDatabaseHandler.changeConnectionFinal(connectionID)); + + //change the timing and check it + ASSERT_EQ(E_OK,pDatabaseHandler.changeConnectionTimingInformation(connectionID,24)); ASSERT_EQ(E_OK,pDatabaseHandler.getListConnections(connectionList)); ASSERT_TRUE(connectionList[0].delay==24); } @@ -332,7 +394,12 @@ TEST_F(databaseTest,getSinkClassOfSink) pCF.createSink(sink); 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); @@ -365,7 +432,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); @@ -395,6 +464,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); @@ -424,6 +494,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)); @@ -454,6 +525,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); @@ -478,6 +550,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); @@ -503,6 +576,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); @@ -532,6 +606,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)); @@ -562,6 +637,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); @@ -586,6 +662,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); @@ -602,6 +679,7 @@ TEST_F(databaseTest, changeSystemProperty) systemProperty.type=SYP_TEST; 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)); @@ -637,6 +715,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)<< "ERROR: ID not the one given in staticSource"; @@ -688,7 +767,10 @@ TEST_F(databaseTest, changeSourceMainSoundProperty) am_MainSoundProperty_s property; property.type=MSP_NAVIGATION_OFFSET; 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<am_MainSoundProperty_s>::iterator listIterator=listSources[0].listMainSoundProperties.begin(); @@ -708,7 +790,10 @@ 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); @@ -723,7 +808,11 @@ TEST_F(databaseTest, changeSinkMainSoundProperty) am_MainSoundProperty_s property; property.type=MSP_NAVIGATION_OFFSET; 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<am_MainSoundProperty_s>::iterator listIterator=listSinks[0].listMainSoundProperties.begin(); @@ -787,6 +876,7 @@ TEST_F(databaseTest, changeMainConnectionState) { std::vector<am_MainConnection_s> listMainConnections; createMainConnectionSetup(); + EXPECT_CALL(pMockInterface,cbMainConnectionStateChanged(_,_)).Times(1); ASSERT_EQ(E_OK,pDatabaseHandler.changeMainConnectionStateDB(1,CS_DISCONNECTING))<< "ERROR: database error"; ASSERT_EQ(E_OK,pDatabaseHandler.getListMainConnections(listMainConnections)); ASSERT_EQ(CS_DISCONNECTING,listMainConnections[0].connectionState); @@ -801,6 +891,8 @@ TEST_F(databaseTest, changeSinkAvailability) am_Availability_s availability; availability.availability=A_UNKNOWN; availability.availabilityReason=AR_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)); @@ -817,6 +909,9 @@ TEST_F(databaseTest, changeSourceAvailability) am_Availability_s availability; availability.availability=A_UNKNOWN; availability.availabilityReason=AR_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)); @@ -836,6 +931,8 @@ TEST_F(databaseTest,changeMainConnectionRoute) am_Sink_s sink; std::vector<am_Connection_s> connectionList; + EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(9); + EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(9); for (uint16_t i=1;i<10;i++) { am_sinkID_t forgetSink; @@ -887,7 +984,12 @@ TEST_F(databaseTest,changeMainSinkVolume) am_mainVolume_t newVol=20; std::vector<am_Sink_s> 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); @@ -900,6 +1002,8 @@ TEST_F(databaseTest,getMainSourceSoundProperties) pCF.createSource(source); std::vector<am_MainSoundProperty_s> mainSoundProperties=source.listMainSoundProperties; std::vector<am_MainSoundProperty_s> 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)); @@ -912,6 +1016,8 @@ TEST_F(databaseTest,getMainSinkSoundProperties) pCF.createSink(sink); std::vector<am_MainSoundProperty_s> mainSoundProperties=sink.listMainSoundProperties; std::vector<am_MainSoundProperty_s> 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)); @@ -930,6 +1036,9 @@ TEST_F(databaseTest,getMainSources) source1.visible=false; std::vector<am_SourceType_s> listMainSources; std::vector<am_Source_s> listSources; + + EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); + ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source,sourceID)); source.sourceID=sourceID; ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source1,sourceID)); @@ -959,6 +1068,8 @@ TEST_F(databaseTest,getMainSinks) sink1.visible=false; std::vector<am_SinkType_s> listMainSinks; std::vector<am_Sink_s> 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)); @@ -1007,6 +1118,9 @@ TEST_F(databaseTest,getListSourcesOfDomain) source2.domainID=5; 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"; ASSERT_EQ(E_OK,pDatabaseHandler.enterSourceDB(source2,sourceID))<< "ERROR: database error"; @@ -1031,6 +1145,8 @@ TEST_F(databaseTest,getListSinksOfDomain) sink2.name="sink2"; 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"; ASSERT_EQ(E_OK,pDatabaseHandler.enterSinkDB(sink2,sinkID))<< "ERROR: database error"; @@ -1104,6 +1220,7 @@ TEST_F(databaseTest,removeSink) am_sinkID_t sinkID; std::vector<am_Sink_s> 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))<< "ERROR: database error"; ASSERT_EQ(E_OK,pDatabaseHandler.getListSinks(listSinks))<< "ERROR: database error"; @@ -1118,6 +1235,7 @@ TEST_F(databaseTest,removeSource) std::vector<am_Source_s> 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))<< "ERROR: database error"; ASSERT_EQ(E_OK,pDatabaseHandler.getListSources(listSources))<< "ERROR: database error"; @@ -1127,6 +1245,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"; } @@ -1259,6 +1379,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)<< "ERROR: ID not the one given in staticSink"; @@ -1277,6 +1398,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)<< "ERROR: ID not the one given in staticSource"; @@ -1356,6 +1478,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)<< "ERROR: ID not the one given in staticSink"; |