diff options
Diffstat (limited to 'AudioManagerDaemon/test/routing/routingTest.cpp')
-rw-r--r-- | AudioManagerDaemon/test/routing/routingTest.cpp | 196 |
1 files changed, 93 insertions, 103 deletions
diff --git a/AudioManagerDaemon/test/routing/routingTest.cpp b/AudioManagerDaemon/test/routing/routingTest.cpp index 2950255..2ed2c9b 100644 --- a/AudioManagerDaemon/test/routing/routingTest.cpp +++ b/AudioManagerDaemon/test/routing/routingTest.cpp @@ -29,6 +29,7 @@ #include "ControlReceiver.h" #include "ControlSender.h" #include "DatabaseObserver.h" +#include "Router.h" #include "../ControlInterfaceBackdoor.h" #include "../CommandInterfaceBackdoor.h" #include "../CommonFunctions.h" @@ -39,13 +40,6 @@ using namespace testing; DLT_DECLARE_CONTEXT(DLT_CONTEXT) -//extern int GetRandomNumber(int nLow, int nHigh); -//extern bool equalSoundProperty (const am_SoundProperty_s a, const am_SoundProperty_s b); -extern bool equalMainSoundProperty(const am_MainSoundProperty_s a, const am_MainSoundProperty_s b); -extern bool equalRoutingElement(const am_RoutingElement_s a, const am_RoutingElement_s b); -extern bool equalClassProperties(const am_ClassProperty_s a, const am_ClassProperty_s b); -extern std::string int2string(int i); - routingTest::routingTest() : plistRoutingPluginDirs(), // plistCommandPluginDirs(), // @@ -59,7 +53,7 @@ routingTest::routingTest() : pRoutingInterfaceBackdoor(), // pCommandInterfaceBackdoor(), // pControlInterfaceBackdoor(), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender), // + pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender, &pRouter), // pObserver(&pCommandSender, &pRoutingSender) { pDatabaseHandler.registerObserver(&pObserver); @@ -88,18 +82,16 @@ ACTION(returnConnectionFormat) arg3=arg2; } - - -//test that checks just 2 domains, one sink one source with only one connection format each -TEST_F(routingTest,simpleRoute2Domains) +//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(2); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(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 - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; + am_Domain_s domain1, domain2, domain3; + am_domainID_t domainID1, domainID2, domainID3; domain1.domainID = 0; domain1.name = "domain1"; @@ -109,52 +101,73 @@ TEST_F(routingTest,simpleRoute2Domains) domain2.name = "domain2"; domain2.busname = "domain2bus"; domain2.state = DS_CONTROLLED; + domain3.domainID = 0; + domain3.name = "domain3"; + domain3.busname = "domain3bus"; + domain3.state = DS_CONTROLLED; ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); + ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain3,domainID3)); - am_Source_s source, gwSource; - am_sourceID_t sourceID, gwSourceID; + am_Source_s source, gwSource, gwSource1; + am_sourceID_t sourceID, gwSourceID, gwSourceID1; source.domainID = domainID1; source.name = "source1"; source.sourceState = SS_ON; source.sourceID = 0; source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_ANALOG); + source.listConnectionFormats.push_back(CF_MONO); gwSource.domainID = domainID2; gwSource.name = "gwsource1"; gwSource.sourceState = SS_ON; gwSource.sourceID = 0; gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_MONO); + gwSource.listConnectionFormats.push_back(CF_ANALOG); + + gwSource1.domainID = domainID3; + gwSource1.name = "gwsource2"; + gwSource1.sourceState = SS_ON; + gwSource1.sourceID = 0; + gwSource1.sourceClassID = 5; + gwSource1.listConnectionFormats.push_back(CF_MONO); ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource1,gwSourceID1)); - am_Sink_s sink, gwSink; - am_sinkID_t sinkID, gwSinkID; + am_Sink_s sink, gwSink, gwSink1; + am_sinkID_t sinkID, gwSinkID, gwSinkID1; - sink.domainID = domainID2; + sink.domainID = domainID3; sink.name = "sink1"; sink.sinkID = 0; sink.sinkClassID = 5; sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_MONO); + sink.listConnectionFormats.push_back(CF_STEREO); gwSink.domainID = domainID1; gwSink.name = "gwSink"; gwSink.sinkID = 0; gwSink.sinkClassID = 5; gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_ANALOG); + gwSink.listConnectionFormats.push_back(CF_MONO); + + gwSink1.domainID = domainID2; + gwSink1.name = "gwSink1"; + gwSink1.sinkID = 0; + gwSink1.sinkClassID = 5; + gwSink1.muteState = MS_MUTED; + gwSink1.listConnectionFormats.push_back(CF_ANALOG); ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); + ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink1,gwSinkID1)); - am_Gateway_s gateway; - am_gatewayID_t gatewayID; + am_Gateway_s gateway, gateway1; + am_gatewayID_t gatewayID, gatewayID1; gateway.controlDomainID = domainID1; gateway.gatewayID = 0; @@ -167,25 +180,44 @@ TEST_F(routingTest,simpleRoute2Domains) gateway.convertionMatrix.push_back(true); gateway.name = "gateway"; + gateway1.controlDomainID = domainID2; + gateway1.gatewayID = 0; + gateway1.sinkID = gwSinkID1; + gateway1.sourceID = gwSourceID1; + gateway1.domainSourceID = domainID3; + gateway1.domainSinkID = domainID2; + gateway1.listSinkFormats = gwSink1.listConnectionFormats; + gateway1.listSourceFormats = gwSource1.listConnectionFormats; + gateway1.convertionMatrix.push_back(true); + gateway1.name = "gateway"; + ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); + ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway1,gatewayID1)); std::vector<am_Route_s> listRoutes; std::vector<am_RoutingElement_s> listRoutingElements; am_RoutingElement_s hopp1; am_RoutingElement_s hopp2; + am_RoutingElement_s hopp3; - hopp1.sinkID = gwSinkID; hopp1.sourceID = sourceID; + hopp1.sinkID = gwSinkID; hopp1.domainID = domainID1; hopp1.connectionFormat = source.listConnectionFormats[0]; - hopp2.sinkID = sinkID; hopp2.sourceID = gwSourceID; + hopp2.sinkID = gwSinkID1; hopp2.domainID = domainID2; - hopp2.connectionFormat = sink.listConnectionFormats[0]; + hopp2.connectionFormat = gwSink1.listConnectionFormats[0]; + + hopp3.sourceID = gwSourceID1; + hopp3.sinkID = sinkID; + hopp3.domainID = domainID3; + hopp3.connectionFormat = sink.listConnectionFormats[0]; listRoutingElements.push_back(hopp1); listRoutingElements.push_back(hopp2); + listRoutingElements.push_back(hopp3); am_Route_s compareRoute; compareRoute.route = listRoutingElements; @@ -193,13 +225,10 @@ TEST_F(routingTest,simpleRoute2Domains) compareRoute.sourceID = sourceID; ASSERT_EQ(E_OK, pRouter.getRoute(false,sourceID,sinkID,listRoutes)); - ASSERT_EQ(1, listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); - + ASSERT_EQ(0, listRoutes.size()); } - -//test that checks just 2 domains, one sink one source but the connectionformat of source -TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) +//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); @@ -229,7 +258,7 @@ TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) source.sourceState = SS_ON; source.sourceID = 0; source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_STEREO); + source.listConnectionFormats.push_back(CF_ANALOG); gwSource.domainID = domainID2; gwSource.name = "gwsource1"; @@ -301,19 +330,21 @@ TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) compareRoute.sourceID = sourceID; ASSERT_EQ(E_OK, pRouter.getRoute(false,sourceID,sinkID,listRoutes)); - ASSERT_EQ(0, listRoutes.size()); + ASSERT_EQ(1, listRoutes.size()); + ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); + } -//test that checks 3 domains, one sink one source. -TEST_F(routingTest,simpleRoute3Domains) +//test that checks just 2 domains, one sink one source but the connectionformat of source +TEST_F(routingTest,simpleRoute2DomainsNoMatchConnectionFormats) { - EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(3); - EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(3); + 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 - am_Domain_s domain1, domain2, domain3; - am_domainID_t domainID1, domainID2, domainID3; + am_Domain_s domain1, domain2; + am_domainID_t domainID1, domainID2; domain1.domainID = 0; domain1.name = "domain1"; @@ -323,47 +354,34 @@ TEST_F(routingTest,simpleRoute3Domains) domain2.name = "domain2"; domain2.busname = "domain2bus"; domain2.state = DS_CONTROLLED; - domain3.domainID = 0; - domain3.name = "domain3"; - domain3.busname = "domain3bus"; - domain3.state = DS_CONTROLLED; ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain3,domainID3)); - am_Source_s source, gwSource, gwSource1; - am_sourceID_t sourceID, gwSourceID, gwSourceID1; + am_Source_s source, gwSource; + am_sourceID_t sourceID, gwSourceID; source.domainID = domainID1; source.name = "source1"; source.sourceState = SS_ON; source.sourceID = 0; source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_MONO); + source.listConnectionFormats.push_back(CF_STEREO); gwSource.domainID = domainID2; gwSource.name = "gwsource1"; gwSource.sourceState = SS_ON; gwSource.sourceID = 0; gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_MONO); + gwSource.listConnectionFormats.push_back(CF_MONO); ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource1,gwSourceID1)); - am_Sink_s sink, gwSink, gwSink1; - am_sinkID_t sinkID, gwSinkID, gwSinkID1; + am_Sink_s sink, gwSink; + am_sinkID_t sinkID, gwSinkID; - sink.domainID = domainID3; + sink.domainID = domainID2; sink.name = "sink1"; sink.sinkID = 0; sink.sinkClassID = 5; @@ -375,21 +393,13 @@ TEST_F(routingTest,simpleRoute3Domains) gwSink.sinkID = 0; gwSink.sinkClassID = 5; gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_ANALOG); + gwSink.listConnectionFormats.push_back(CF_ANALOG); ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink1,gwSinkID1)); - am_Gateway_s gateway, gateway1; - am_gatewayID_t gatewayID, gatewayID1; + am_Gateway_s gateway; + am_gatewayID_t gatewayID; gateway.controlDomainID = domainID1; gateway.gatewayID = 0; @@ -402,44 +412,25 @@ TEST_F(routingTest,simpleRoute3Domains) gateway.convertionMatrix.push_back(true); gateway.name = "gateway"; - gateway1.controlDomainID = domainID2; - gateway1.gatewayID = 0; - gateway1.sinkID = gwSinkID1; - gateway1.sourceID = gwSourceID1; - gateway1.domainSourceID = domainID3; - gateway1.domainSinkID = domainID2; - gateway1.listSinkFormats = gwSink1.listConnectionFormats; - gateway1.listSourceFormats = gwSource1.listConnectionFormats; - gateway1.convertionMatrix.push_back(true); - gateway1.name = "gateway"; - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway1,gatewayID1)); std::vector<am_Route_s> listRoutes; std::vector<am_RoutingElement_s> listRoutingElements; am_RoutingElement_s hopp1; am_RoutingElement_s hopp2; - am_RoutingElement_s hopp3; - hopp1.sourceID = sourceID; hopp1.sinkID = gwSinkID; + hopp1.sourceID = sourceID; hopp1.domainID = domainID1; hopp1.connectionFormat = source.listConnectionFormats[0]; + hopp2.sinkID = sinkID; hopp2.sourceID = gwSourceID; - hopp2.sinkID = gwSinkID1; hopp2.domainID = domainID2; - hopp2.connectionFormat = gwSink1.listConnectionFormats[0]; - - hopp3.sourceID = gwSourceID1; - hopp3.sinkID = sinkID; - hopp3.domainID = domainID3; - hopp3.connectionFormat = sink.listConnectionFormats[0]; + hopp2.connectionFormat = sink.listConnectionFormats[0]; listRoutingElements.push_back(hopp1); listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); am_Route_s compareRoute; compareRoute.route = listRoutingElements; @@ -447,12 +438,11 @@ TEST_F(routingTest,simpleRoute3Domains) compareRoute.sourceID = sourceID; ASSERT_EQ(E_OK, pRouter.getRoute(false,sourceID,sinkID,listRoutes)); - ASSERT_EQ(1, listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); + ASSERT_EQ(0, listRoutes.size()); } -//test that checks 3 domains, one sink one source but the connectionformat of third domains do not fit. -TEST_F(routingTest,simpleRoute3DomainsNoConnection) +//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); @@ -515,7 +505,7 @@ TEST_F(routingTest,simpleRoute3DomainsNoConnection) sink.sinkID = 0; sink.sinkClassID = 5; sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_STEREO); + sink.listConnectionFormats.push_back(CF_MONO); gwSink.domainID = domainID1; gwSink.name = "gwSink"; @@ -594,7 +584,7 @@ TEST_F(routingTest,simpleRoute3DomainsNoConnection) compareRoute.sourceID = sourceID; ASSERT_EQ(E_OK, pRouter.getRoute(false,sourceID,sinkID,listRoutes)); - ASSERT_EQ(0, listRoutes.size()); + ASSERT_EQ(1, listRoutes.size()); ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); } |