diff options
Diffstat (limited to 'AudioManagerDaemon/test/AmRouterMapTest')
3 files changed, 0 insertions, 3367 deletions
diff --git a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp b/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp deleted file mode 100644 index 647dad5..0000000 --- a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp +++ /dev/null @@ -1,3178 +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 Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013, 2014 - * - * For further information see http://www.genivi.org/. - * - */ - -#include <ctime> -#include <chrono> -#include "CAmRouterMapTest.h" -#include <string.h> -#include "CAmDltWrapper.h" - - - - -using namespace am; -using namespace testing; - -CAmRouterMapTest::CAmRouterMapTest() : - plistRoutingPluginDirs(), // - plistCommandPluginDirs(), // - pSocketHandler(), // - pControlSender(), // - pDatabaseHandler(), - pRouter(&pDatabaseHandler, &pControlSender), // - pRoutingSender(plistRoutingPluginDirs), // - pCommandSender(plistCommandPluginDirs), // - pMockInterface(), // - pMockControlInterface(), // - pRoutingInterfaceBackdoor(), // - pCommandInterfaceBackdoor(), // - pControlInterfaceBackdoor(), // - pControlReceiver(&pDatabaseHandler, &pRoutingSender, &pCommandSender,&pSocketHandler, &pRouter), // - pObserver(&pCommandSender, &pRoutingSender, &pSocketHandler) -{ - pDatabaseHandler.registerObserver(&pObserver); - pCommandInterfaceBackdoor.injectInterface(&pCommandSender, &pMockInterface); - pControlInterfaceBackdoor.replaceController(&pControlSender, &pMockControlInterface); -} - -CAmRouterMapTest::~CAmRouterMapTest() -{ - -} - -void CAmRouterMapTest::SetUp() -{ - logInfo("Routing Test started "); -} - -void CAmRouterMapTest::TearDown() -{ -} - -ACTION(returnConnectionFormat){ - arg4=arg3; -} - -void CAmRouterMapTest::enterDomainDB(const std::string & domainName, am_domainID_t & domainID) -{ - am_Domain_s domain1; - domain1.domainID = 0; - domain1.name = domainName; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID)); -} - -void CAmRouterMapTest::enterSourceDB(const std::string & sourceName, const am_domainID_t domainID, const std::vector<am_CustomConnectionFormat_t> & connectionFormats, am_sourceID_t & sourceID) -{ - am_Source_s source; - source.domainID = domainID; - source.name = sourceName; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats = connectionFormats; - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); -} - -void CAmRouterMapTest::enterSinkDB(const std::string & sinkName, const am_domainID_t domainID, const std::vector<am_CustomConnectionFormat_t> & connectionFormats, am_sinkID_t & sinkID) -{ - am_Sink_s sink; - sink.domainID = domainID; - sink.name = sinkName; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats = connectionFormats; - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); -} - -void CAmRouterMapTest::enterGatewayDB(const std::string & gwName, - const am_domainID_t domainSourceID, - const am_domainID_t domainSinkID, - const std::vector<am_CustomConnectionFormat_t> & sourceConnectionFormats, - const std::vector<am_CustomConnectionFormat_t> & sinkConnectionFormats, - const std::vector<bool> & matrix, - const am_sourceID_t & sourceID, - const am_sinkID_t & sinkID, - am_gatewayID_t & gatewayID) -{ - am_Gateway_s gateway; - gateway.controlDomainID = domainSourceID; - gateway.gatewayID = 0; - gateway.sinkID = sinkID; - gateway.sourceID = sourceID; - gateway.domainSourceID = domainSourceID; - gateway.domainSinkID = domainSinkID; - gateway.listSinkFormats = sinkConnectionFormats; - gateway.listSourceFormats = sourceConnectionFormats; - gateway.convertionMatrix = matrix; - gateway.name = gwName; - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); -} - -void CAmRouterMapTest::enterConverterDB(const std::string & gwName, - const am_domainID_t domainID, - const std::vector<am_CustomConnectionFormat_t> & sourceConnectionFormats, - const std::vector<am_CustomConnectionFormat_t> & sinkConnectionFormats, - const std::vector<bool> & matrix, - const am_sourceID_t & sourceID, - const am_sinkID_t & sinkID, - am_converterID_t & converterID) -{ - am_Converter_s converter; - converter.converterID = 0; - converter.sinkID = sinkID; - converter.sourceID = sourceID; - converter.domainID = domainID; - converter.listSinkFormats = sinkConnectionFormats; - converter.listSourceFormats = sourceConnectionFormats; - converter.convertionMatrix = matrix; - converter.name = gwName; - ASSERT_EQ(E_OK, pDatabaseHandler.enterConverterDB(converter,converterID)); -} - -void CAmRouterMapTest::getRoute(const bool onlyfree, const am_Source_s & aSource, const am_Sink_s & aSink, std::vector<am_Route_s> & listRoutes) -{ - std::ios_base::fmtflags oldflags = std::cout.flags(); - std::streamsize oldprecision = std::cout.precision(); - auto t_start = std::chrono::high_resolution_clock::now(); - ASSERT_EQ(E_OK, pRouter.getRoute(onlyfree, aSource, aSink, listRoutes)); - auto t_end = std::chrono::high_resolution_clock::now(); - std::cout << std::fixed << std::setprecision(2); - std::cout << "getRoute did find " << listRoutes.size() <<" routes from " << aSource.sourceID << " to " << aSink.sinkID; - std::cout << " in " << std::chrono::duration<double, std::milli>(t_end-t_start).count() << " ms\n"; - std::cout.flags (oldflags); - std::cout.precision (oldprecision); -} - -void CAmRouterMapTest::getRoute(const bool onlyfree, const am_sourceID_t sourceID, const am_sinkID_t sinkID, std::vector<am_Route_s>& returnList) -{ - std::ios_base::fmtflags oldflags = std::cout.flags(); - std::streamsize oldprecision = std::cout.precision(); - auto t_start = std::chrono::high_resolution_clock::now(); - ASSERT_EQ(E_OK, pRouter.getRoute(onlyfree, sourceID, sinkID, returnList)); - auto t_end = std::chrono::high_resolution_clock::now(); - std::cout << std::fixed << std::setprecision(2); - std::cout << "getRoute by id did find " << returnList.size() <<" routes from " << sourceID << " to " << sinkID; - std::cout << " in " << std::chrono::duration<double, std::milli>(t_end-t_start).count() << " ms\n"; - std::cout.flags (oldflags); - std::cout.precision (oldprecision); -} - -void CAmRouterMapTest::getAllPaths(CAmRoutingNode & aSource, - CAmRoutingNode & aSink, - std::vector<am_Route_s> & resultPath, - std::vector<std::vector<CAmRoutingNode*>> & resultNodesPath, - const bool includeCycles) -{ - std::ios_base::fmtflags oldflags = std::cout.flags(); - std::streamsize oldprecision = std::cout.precision(); - auto t_start = std::chrono::high_resolution_clock::now(); - ASSERT_EQ(E_OK, pRouter.getAllPaths(aSource, aSink, resultPath, resultNodesPath, includeCycles)); - auto t_end = std::chrono::high_resolution_clock::now(); - std::cout << std::fixed << std::setprecision(2); - std::cout << "getAllPaths did find " << resultPath.size() - << " routes from " << aSource.getData().data.source->sourceID - << " to " << aSink.getData().data.sink->sinkID; - std::cout << " in " << std::chrono::duration<double, std::milli>(t_end-t_start).count() << " ms\n"; - std::cout.flags (oldflags); - std::cout.precision (oldprecision); -} - -TEST_F(CAmRouterMapTest,checkInsertedDomain) -{ - std::vector<am_domainID_t> domains; - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 22)); - domains.push_back(22); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 22)); - domains.push_back(22); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 22)); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 50)); - domains.push_back(30); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 30)); - ASSERT_FALSE(CAmRouter::shouldGoInDomain(domains, 22)); - domains.push_back(30); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 30)); - ASSERT_FALSE(CAmRouter::shouldGoInDomain(domains, 22)); - ASSERT_TRUE(CAmRouter::shouldGoInDomain(domains, 60)); -} - -//test that checks just sinks and source in a domain but connectionformats do not match -TEST_F(CAmRouterMapTest,simpleRoute2withDomainNoMatchFormats) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1; - am_domainID_t domainID1; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - - am_Source_s source; - am_sourceID_t sourceID; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - - am_Sink_s sink; - am_sinkID_t sinkID; - - sink.domainID = domainID1; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - - hopp1.sinkID = sinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(true, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); -} - -//test that checks just sinks and source in a domain -TEST_F(CAmRouterMapTest,simpleRoute2withDomain) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1; - am_domainID_t domainID1; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - - am_Source_s source; - am_sourceID_t sourceID; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - - am_Sink_s sink; - am_sinkID_t sinkID; - - sink.domainID = domainID1; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - - hopp1.sinkID = sinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(true, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks just 2 domains, one sink one source with only one connection format each -TEST_F(CAmRouterMapTest,simpleRoute2DomainsOnlyFree) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - - 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_GENIVI_ANALOG); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - - am_Sink_s sink, gwSink; - am_sinkID_t sinkID, gwSinkID; - - sink.domainID = domainID2; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - - am_Gateway_s gateway; - am_gatewayID_t gatewayID; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(true); - gateway.name = "gateway"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - - hopp1.sinkID = gwSinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sinkID = sinkID; - hopp2.sourceID = gwSourceID; - hopp2.domainID = domainID2; - hopp2.connectionFormat = sink.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - - getRoute(true,sourceID,sinkID,listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - - -//test that checks just 2 domains, one sink one source with only one connection format each -TEST_F(CAmRouterMapTest,simpleRoute2DomainsOnlyFreeNotFree) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - - 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_GENIVI_ANALOG); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - - am_Sink_s sink, gwSink; - am_sinkID_t sinkID, gwSinkID; - - sink.domainID = domainID2; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - - am_Gateway_s gateway; - am_gatewayID_t gatewayID; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(true); - gateway.name = "gateway"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - - hopp1.sinkID = gwSinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sinkID = sinkID; - hopp2.sourceID = gwSourceID; - hopp2.domainID = domainID2; - hopp2.connectionFormat = sink.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am_Connection_s connection,connection1; - am_connectionID_t id1,id2; - connection.sourceID=sourceID; - connection.sinkID=gwSinkID; - connection.connectionFormat=CF_GENIVI_ANALOG; - connection.connectionID=0; - connection1.sourceID=gwSourceID; - connection1.sinkID=sinkID; - connection1.connectionFormat=CF_GENIVI_ANALOG; - connection1.connectionID=0; - - ASSERT_EQ(E_OK,pDatabaseHandler.enterConnectionDB(connection,id1)); - ASSERT_EQ(E_OK,pDatabaseHandler.enterConnectionDB(connection1,id2)); - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(true, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); - - listRoutes.clear(); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks just 2 domains, with gateway for each direction (possible circular route) -TEST_F(CAmRouterMapTest,simpleRoute2DomainsCircularGWOnlyFree) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - - am_Source_s source, gwSource, gwSource2; - am_sourceID_t sourceID, gwSourceID, gwSourceID2; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource2.domainID = domainID1; - gwSource2.name = "gwsource2"; - gwSource2.sourceState = SS_ON; - gwSource2.sourceID = 0; - gwSource2.sourceClassID = 5; - gwSource2.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource2,gwSourceID2)); - - am_Sink_s sink, gwSink, gwSink2; - am_sinkID_t sinkID, gwSinkID, gwSinkID2; - - sink.domainID = domainID2; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSink2.domainID = domainID2; - gwSink2.name = "gwSink2"; - gwSink2.sinkID = 0; - gwSink2.sinkClassID = 5; - gwSink2.muteState = MS_MUTED; - gwSink2.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink2,gwSinkID2)); - - am_Gateway_s gateway, gateway2; - am_gatewayID_t gatewayID, gatewayID2; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(true); - gateway.name = "gateway"; - - gateway2.controlDomainID = domainID1; - gateway2.gatewayID = 0; - gateway2.sinkID = gwSinkID2; - gateway2.sourceID = gwSourceID2; - gateway2.domainSourceID = domainID1; - gateway2.domainSinkID = domainID2; - gateway2.listSinkFormats = gwSink2.listConnectionFormats; - gateway2.listSourceFormats = gwSource2.listConnectionFormats; - gateway2.convertionMatrix.push_back(true); - gateway2.name = "gateway2"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway2,gatewayID2)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - - hopp1.sinkID = gwSinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sinkID = sinkID; - hopp2.sourceID = gwSourceID; - hopp2.domainID = domainID2; - hopp2.connectionFormat = sink.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(true, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks 3 domains, one sink one source, longer lists of connectionformats. -TEST_F(CAmRouterMapTest,simpleRoute3DomainsListConnectionFormats_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; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - 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; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_STEREO); - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - gwSource.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSource1.listConnectionFormats.push_back(CF_GENIVI_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; - - sink.domainID = domainID3; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - gwSink1.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - 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; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(true); - gateway.convertionMatrix.push_back(true); - gateway.convertionMatrix.push_back(false); - 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(false); - gateway1.convertionMatrix.push_back(false); - gateway1.convertionMatrix.push_back(false); - gateway1.convertionMatrix.push_back(true); - gateway1.name = "gateway1"; - - 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.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[1]; - - hopp2.sourceID = gwSourceID; - hopp2.sinkID = gwSinkID1; - hopp2.domainID = domainID2; - hopp2.connectionFormat = gwSink1.listConnectionFormats[1]; - - 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; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks 3 domains, one sink one source, longer lists of connectionformats. -TEST_F(CAmRouterMapTest,simpleRoute3DomainsListConnectionFormats_1) -{ - 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; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - 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; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_STEREO); - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_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; - - sink.domainID = domainID3; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_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; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(false); - gateway.convertionMatrix.push_back(true); - gateway.convertionMatrix.push_back(false); - 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.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - 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]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - - -//test that checks 3 domains, one sink one source, longer lists of connectionformats. -TEST_F(CAmRouterMapTest,simpleRoute3DomainsListConnectionFormats) -{ - 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; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - 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; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_STEREO); - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_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; - - sink.domainID = domainID3; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_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; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(false); - 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.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[1]; - - 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]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - - -//test that checks 4 domains, one sink and one source but there are 2 routes because there are 2 gateways -TEST_F(CAmRouterMapTest,simpleRoute4Domains2Routes) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2, domain3, domain4; - am_domainID_t domainID1, domainID2, domainID3, domainID4; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - domain3.domainID = 0; - domain3.name = "domain3"; - domain3.busname = "domain3bus"; - domain3.state = DS_CONTROLLED; - domain4.domainID = 0; - domain4.name = "domain4"; - domain4.busname = "domain4bus"; - domain4.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)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain4,domainID4)); - - am_Source_s source, gwSource, gwSource1, gwSource2, gwSource3; - am_sourceID_t sourceID, gwSourceID, gwSourceID1, gwSourceID2, gwSourceID3; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource2.domainID = domainID4; - gwSource2.name = "gwsource3"; - gwSource2.sourceState = SS_OFF; - gwSource2.sourceID = 0; - gwSource2.sourceClassID = 5; - gwSource2.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - gwSource3.domainID = domainID3; - gwSource3.name = "gwsource4"; - gwSource3.sourceState = SS_OFF; - gwSource3.sourceID = 0; - gwSource3.sourceClassID = 5; - gwSource3.listConnectionFormats.push_back(CF_GENIVI_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)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource2,gwSourceID2)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource3,gwSourceID3)); - - am_Sink_s sink, gwSink, gwSink1, gwSink2, gwSink3; - am_sinkID_t sinkID, gwSinkID, gwSinkID1, gwSinkID2, gwSinkID3; - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSink2.domainID = domainID3; - gwSink2.name = "gwSink2"; - gwSink2.sinkID = 0; - gwSink2.sinkClassID = 5; - gwSink2.muteState = MS_MUTED; - gwSink2.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink3.domainID = domainID2; - gwSink3.name = "gwSink3"; - gwSink3.sinkID = 0; - gwSink3.sinkClassID = 5; - gwSink3.muteState = MS_MUTED; - gwSink3.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - sink.domainID = domainID4; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink1,gwSinkID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink2,gwSinkID2)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink3,gwSinkID3)); - - am_Gateway_s gateway, gateway1, gateway2, gateway3; - am_gatewayID_t gatewayID, gatewayID1, gatewayID2, gatewayID3; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - 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 = "gateway1"; - - gateway2.controlDomainID = domainID3; - gateway2.gatewayID = 0; - gateway2.sinkID = gwSinkID2; - gateway2.sourceID = gwSourceID2; - gateway2.domainSourceID = domainID4; - gateway2.domainSinkID = domainID3; - gateway2.listSinkFormats = gwSink2.listConnectionFormats; - gateway2.listSourceFormats = gwSource2.listConnectionFormats; - gateway2.convertionMatrix.push_back(true); - gateway2.name = "gateway2"; - - gateway3.controlDomainID = domainID2; - gateway3.gatewayID = 0; - gateway3.sinkID = gwSinkID3; - gateway3.sourceID = gwSourceID3; - gateway3.domainSourceID = domainID3; - gateway3.domainSinkID = domainID2; - gateway3.listSinkFormats = gwSink3.listConnectionFormats; - gateway3.listSourceFormats = gwSource3.listConnectionFormats; - gateway3.convertionMatrix.push_back(true); - gateway3.name = "gateway3"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway1,gatewayID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway2,gatewayID2)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway3,gatewayID3)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements, listRoutingElements1; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - am_RoutingElement_s hopp3; - am_RoutingElement_s hopp4; - am_RoutingElement_s hopp2alt; - am_RoutingElement_s hopp3alt; - - hopp1.sourceID = sourceID; - hopp1.sinkID = gwSinkID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sourceID = gwSourceID; - hopp2.sinkID = gwSinkID1; - hopp2.domainID = domainID2; - hopp2.connectionFormat = gwSink1.listConnectionFormats[0]; - - hopp3.sourceID = gwSourceID1; - hopp3.sinkID = gwSinkID2; - hopp3.domainID = domainID3; - hopp3.connectionFormat = gwSink2.listConnectionFormats[0]; - - hopp4.sourceID = gwSourceID2; - hopp4.sinkID = sinkID; - hopp4.domainID = domainID4; - hopp4.connectionFormat = sink.listConnectionFormats[0]; - - hopp2alt.sourceID = gwSourceID; - hopp2alt.sinkID = gwSinkID3; - hopp2alt.domainID = domainID2; - hopp2alt.connectionFormat = gwSink3.listConnectionFormats[0]; - - hopp3alt.sourceID = gwSourceID3; - hopp3alt.sinkID = gwSinkID2; - hopp3alt.domainID = domainID3; - hopp3alt.connectionFormat = gwSink2.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - listRoutingElements.push_back(hopp4); - listRoutingElements1.push_back(hopp1); - listRoutingElements1.push_back(hopp2alt); - listRoutingElements1.push_back(hopp3alt); - listRoutingElements1.push_back(hopp4); - - am_Route_s compareRoute, compareRoute1; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - compareRoute1.route = listRoutingElements1; - compareRoute1.sinkID = sinkID; - compareRoute1.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(2), listRoutes.size()); - - bool containsRoute1 = std::find_if(listRoutes.begin(), listRoutes.end(), [&](const am_Route_s & ref) { - return pCF.compareRoute(compareRoute, ref); - })!=listRoutes.end(); - bool containsRoute2 = std::find_if(listRoutes.begin(), listRoutes.end(), [&](const am_Route_s & ref) { - return pCF.compareRoute(compareRoute1, ref); - })!=listRoutes.end(); - - ASSERT_TRUE(containsRoute1); - ASSERT_TRUE(containsRoute2); -} - -//test that checks 3 domains, one sink one source but the connectionformat of third domains do not fit. -TEST_F(CAmRouterMapTest,simpleRoute3DomainsNoConnection) -{ - 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; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - 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; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_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; - - sink.domainID = domainID3; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_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; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - 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.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - 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]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); -} -//test that checks just 2 domains, one sink one source with only one connection format each -TEST_F(CAmRouterMapTest,simpleRoute2Domains) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - - 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_GENIVI_ANALOG); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - - am_Sink_s sink, gwSink; - am_sinkID_t sinkID, gwSinkID; - - sink.domainID = domainID2; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - - am_Gateway_s gateway; - am_gatewayID_t gatewayID; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(true); - gateway.name = "gateway"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - - hopp1.sinkID = gwSinkID; - hopp1.sourceID = sourceID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sinkID = sinkID; - hopp2.sourceID = gwSourceID; - hopp2.domainID = domainID2; - hopp2.connectionFormat = sink.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks just 2 domains, one sink one source but the connectionformat of source -TEST_F(CAmRouterMapTest,simpleRoute2DomainsNoMatchConnectionFormats) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2; - am_domainID_t domainID1, domainID2; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain2,domainID2)); - - 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_GENIVI_STEREO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_MONO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - - am_Sink_s sink, gwSink; - am_sinkID_t sinkID, gwSinkID; - - sink.domainID = domainID2; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - - am_Gateway_s gateway; - am_gatewayID_t gatewayID; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - gateway.convertionMatrix.push_back(true); - gateway.name = "gateway"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - - std::vector<am_Route_s> listRoutes; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); - } - -//test that checks 3 domains, one sink one source. -TEST_F(CAmRouterMapTest,simpleRoute3Domains) -{ - 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; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - 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; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_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; - - sink.domainID = domainID3; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_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; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - 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.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - 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]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -//test that checks 4 domains, one sink and one source. -TEST_F(CAmRouterMapTest,simpleRoute4Domains) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - //initialize 2 domains - am_Domain_s domain1, domain2, domain3, domain4; - am_domainID_t domainID1, domainID2, domainID3, domainID4; - - domain1.domainID = 0; - domain1.name = "domain1"; - domain1.busname = "domain1bus"; - domain1.state = DS_CONTROLLED; - domain2.domainID = 0; - domain2.name = "domain2"; - domain2.busname = "domain2bus"; - domain2.state = DS_CONTROLLED; - domain3.domainID = 0; - domain3.name = "domain3"; - domain3.busname = "domain3bus"; - domain3.state = DS_CONTROLLED; - domain4.domainID = 0; - domain4.name = "domain4"; - domain4.busname = "domain4bus"; - domain4.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)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain4,domainID4)); - - am_Source_s source, gwSource, gwSource1, gwSource2; - am_sourceID_t sourceID, gwSourceID, gwSourceID1, gwSourceID2; - - source.domainID = domainID1; - source.name = "source1"; - source.sourceState = SS_ON; - source.sourceID = 0; - source.sourceClassID = 5; - source.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource.domainID = domainID2; - gwSource.name = "gwsource1"; - gwSource.sourceState = SS_ON; - gwSource.sourceID = 0; - gwSource.sourceClassID = 5; - gwSource.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSource1.domainID = domainID3; - gwSource1.name = "gwsource2"; - gwSource1.sourceState = SS_ON; - gwSource1.sourceID = 0; - gwSource1.sourceClassID = 5; - gwSource1.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSource2.domainID = domainID4; - gwSource2.name = "gwsource3"; - gwSource2.sourceState = SS_OFF; - gwSource2.sourceID = 0; - gwSource2.sourceClassID = 5; - gwSource2.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource,gwSourceID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource1,gwSourceID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(gwSource2,gwSourceID2)); - - am_Sink_s sink, gwSink, gwSink1, gwSink2; - am_sinkID_t sinkID, gwSinkID, gwSinkID1, gwSinkID2; - - gwSink.domainID = domainID1; - gwSink.name = "gwSink"; - gwSink.sinkID = 0; - gwSink.sinkClassID = 5; - gwSink.muteState = MS_MUTED; - gwSink.listConnectionFormats.push_back(CF_GENIVI_MONO); - - gwSink1.domainID = domainID2; - gwSink1.name = "gwSink1"; - gwSink1.sinkID = 0; - gwSink1.sinkClassID = 5; - gwSink1.muteState = MS_MUTED; - gwSink1.listConnectionFormats.push_back(CF_GENIVI_ANALOG); - - gwSink2.domainID = domainID3; - gwSink2.name = "gwSink2"; - gwSink2.sinkID = 0; - gwSink2.sinkClassID = 5; - gwSink2.muteState = MS_MUTED; - gwSink2.listConnectionFormats.push_back(CF_GENIVI_MONO); - - sink.domainID = domainID4; - sink.name = "sink1"; - sink.sinkID = 0; - sink.sinkClassID = 5; - sink.muteState = MS_MUTED; - sink.listConnectionFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink,gwSinkID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink1,gwSinkID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(gwSink2,gwSinkID2)); - - am_Gateway_s gateway, gateway1, gateway2; - am_gatewayID_t gatewayID, gatewayID1, gatewayID2; - - gateway.controlDomainID = domainID1; - gateway.gatewayID = 0; - gateway.sinkID = gwSinkID; - gateway.sourceID = gwSourceID; - gateway.domainSourceID = domainID2; - gateway.domainSinkID = domainID1; - gateway.listSinkFormats = gwSink.listConnectionFormats; - gateway.listSourceFormats = gwSource.listConnectionFormats; - 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 = "gateway1"; - - gateway2.controlDomainID = domainID3; - gateway2.gatewayID = 0; - gateway2.sinkID = gwSinkID2; - gateway2.sourceID = gwSourceID2; - gateway2.domainSourceID = domainID4; - gateway2.domainSinkID = domainID3; - gateway2.listSinkFormats = gwSink2.listConnectionFormats; - gateway2.listSourceFormats = gwSource2.listConnectionFormats; - gateway2.convertionMatrix.push_back(true); - gateway2.name = "gateway2"; - - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway,gatewayID)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway1,gatewayID1)); - ASSERT_EQ(E_OK, pDatabaseHandler.enterGatewayDB(gateway2,gatewayID2)); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - am_RoutingElement_s hopp3; - am_RoutingElement_s hopp4; - - hopp1.sourceID = sourceID; - hopp1.sinkID = gwSinkID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = source.listConnectionFormats[0]; - - hopp2.sourceID = gwSourceID; - hopp2.sinkID = gwSinkID1; - hopp2.domainID = domainID2; - hopp2.connectionFormat = gwSink1.listConnectionFormats[0]; - - hopp3.sourceID = gwSourceID1; - hopp3.sinkID = gwSinkID2; - hopp3.domainID = domainID3; - hopp3.connectionFormat = gwSink2.listConnectionFormats[0]; - - hopp4.sourceID = gwSourceID2; - hopp4.sinkID = sinkID; - hopp4.domainID = domainID4; - hopp4.connectionFormat = sink.listConnectionFormats[0]; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - listRoutingElements.push_back(hopp3); - listRoutingElements.push_back(hopp4); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - am::am_Source_s sourceDb; - am::am_Sink_s sinkDb; - pDatabaseHandler.getSinkInfoDB(sinkID, sinkDb); - pDatabaseHandler.getSourceInfoDB(sourceID, sourceDb); - listRoutes.clear(); - getRoute(false, sourceDb, sinkDb, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,getAllowedFormatsFromConvMatrix) -{ - std::vector<bool> convertionMatrix; - convertionMatrix.push_back(1); - convertionMatrix.push_back(0); - convertionMatrix.push_back(0); - convertionMatrix.push_back(1); - convertionMatrix.push_back(1); - convertionMatrix.push_back(0); - - std::vector<am_CustomConnectionFormat_t> listSourceFormats; - listSourceFormats.push_back(CF_GENIVI_ANALOG); - listSourceFormats.push_back(CF_GENIVI_STEREO); - - std::vector<am_CustomConnectionFormat_t> listSinkFormats; - listSinkFormats.push_back(CF_GENIVI_MONO); - listSinkFormats.push_back(CF_GENIVI_AUTO); - listSinkFormats.push_back(CF_GENIVI_STEREO); - - std::vector<am_CustomConnectionFormat_t> sourceFormats; - std::vector<am_CustomConnectionFormat_t> sinkFormats; - - ASSERT_TRUE(CAmRouter::getAllowedFormatsFromConvMatrix(convertionMatrix, listSourceFormats, listSinkFormats, sourceFormats, sinkFormats)); - - ASSERT_TRUE(sourceFormats.size()==3); - ASSERT_TRUE(sinkFormats.size()==3); - ASSERT_TRUE(sourceFormats.at(0)==CF_GENIVI_ANALOG); - ASSERT_TRUE(sourceFormats.at(1)==CF_GENIVI_STEREO); - ASSERT_TRUE(sourceFormats.at(2)==CF_GENIVI_ANALOG); - ASSERT_TRUE(sinkFormats.at(0)==CF_GENIVI_MONO); - ASSERT_TRUE(sinkFormats.at(1)==CF_GENIVI_AUTO); - ASSERT_TRUE(sinkFormats.at(2)==CF_GENIVI_STEREO); - - sinkFormats.clear(); - sourceFormats.clear(); - convertionMatrix.clear(); - listSinkFormats.clear(); - listSourceFormats.clear(); - - convertionMatrix.push_back(1); - listSinkFormats.push_back(CF_GENIVI_STEREO); - listSourceFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_TRUE(CAmRouter::getAllowedFormatsFromConvMatrix(convertionMatrix, listSourceFormats, listSinkFormats, sourceFormats, sinkFormats)); - - sinkFormats.clear(); - sourceFormats.clear(); - convertionMatrix.clear(); - listSinkFormats.clear(); - listSourceFormats.clear(); - - convertionMatrix.push_back(1); - convertionMatrix.push_back(0); - listSourceFormats.push_back(CF_GENIVI_STEREO); - listSinkFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_FALSE(CAmRouter::getAllowedFormatsFromConvMatrix(convertionMatrix, listSourceFormats, listSinkFormats, sourceFormats, sinkFormats)); - - sinkFormats.clear(); - sourceFormats.clear(); - convertionMatrix.clear(); - listSinkFormats.clear(); - listSourceFormats.clear(); - - convertionMatrix.push_back(1); - listSinkFormats.push_back(CF_GENIVI_STEREO); - - ASSERT_FALSE(CAmRouter::getAllowedFormatsFromConvMatrix(convertionMatrix, listSourceFormats, listSinkFormats, sourceFormats, sinkFormats)); -} - -TEST_F(CAmRouterMapTest,route1Domain1Source1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1; - enterDomainDB("domain1", domainID1); - - am_sourceID_t sourceID; - std::vector<am_CustomConnectionFormat_t> cf1; - cf1.push_back(CF_GENIVI_STEREO); - cf1.push_back(CF_GENIVI_ANALOG); - enterSourceDB("source1", domainID1, cf1, sourceID); - - am_sinkID_t sinkID; - std::vector<am_CustomConnectionFormat_t> cf2; - cf2.push_back(CF_GENIVI_ANALOG); - cf2.push_back(CF_GENIVI_MONO); - enterSinkDB("sink1", domainID1, cf2, sinkID); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - - hopp1.sourceID = sourceID; - hopp1.sinkID = sinkID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = cf2[0]; - - listRoutingElements.push_back(hopp1); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID; - compareRoute.sourceID = sourceID; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,route1Domain1Source1Converter1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1; - enterDomainDB("domain1", domainID1); - - am_sourceID_t sourceID; - std::vector<am_CustomConnectionFormat_t> cf1; - cf1.push_back(CF_GENIVI_STEREO); - cf1.push_back(CF_GENIVI_AUTO); - enterSourceDB("source1", domainID1, cf1, sourceID); - - am_sinkID_t sinkID1, sinkID2; - std::vector<am_CustomConnectionFormat_t> cf2; - cf2.push_back(CF_GENIVI_MONO); - cf2.push_back(CF_GENIVI_ANALOG); - enterSinkDB("sink1", domainID1, cf2, sinkID1); - enterSinkDB("sink2", domainID1, cf2, sinkID2); - - am_sourceID_t gwSourceID; - std::vector<am_CustomConnectionFormat_t> cf3; - cf3.push_back(CF_GENIVI_MONO); - cf3.push_back(CF_GENIVI_ANALOG); - enterSourceDB("gwSource1", domainID1, cf3, gwSourceID); - - am_sinkID_t gwSinkID; - std::vector<am_CustomConnectionFormat_t> cf4; - cf4.push_back(CF_GENIVI_STEREO); - cf4.push_back(CF_GENIVI_ANALOG); - enterSinkDB("gwSink1", domainID1, cf4, gwSinkID); - - am_converterID_t converterID; - std::vector<bool> matrix; - matrix.resize(4, false); - matrix[0]=(true); - matrix[1]=(true); - enterConverterDB("converter", domainID1, cf3, cf4, matrix, gwSourceID, gwSinkID, converterID); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sinkID1, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements; - am_RoutingElement_s hopp1; - am_RoutingElement_s hopp2; - - hopp1.sourceID = sourceID; - hopp1.sinkID = gwSinkID; - hopp1.domainID = domainID1; - hopp1.connectionFormat = CF_GENIVI_STEREO; - - hopp2.sourceID = gwSourceID; - hopp2.sinkID = sinkID1; - hopp2.domainID = domainID1; - hopp2.connectionFormat = CF_GENIVI_MONO; - - listRoutingElements.push_back(hopp1); - listRoutingElements.push_back(hopp2); - - am_Route_s compareRoute; - compareRoute.route = listRoutingElements; - compareRoute.sinkID = sinkID1; - compareRoute.sourceID = sourceID; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,route1Domain1Source3Converters1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1; - enterDomainDB("domain1", domainID1); - - std::vector<am_CustomConnectionFormat_t> cf1; - cf1.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cf2; - cf2.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cf3; - cf3.push_back(CF_GENIVI_AUTO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cf1, sourceID); - - am_sinkID_t sinkID; - enterSinkDB("sink1", domainID1, cf3, sinkID); - - am_sourceID_t gwSourceID; - enterSourceDB("gwSource1", domainID1, cf2, gwSourceID); - am_sinkID_t gwSinkID; - enterSinkDB("gwSink1", domainID1, cf1, gwSinkID); - am_converterID_t converterID; - std::vector<bool> matrix; - matrix.push_back(true); - enterConverterDB("converter1", domainID1, cf2, cf1, matrix, gwSourceID, gwSinkID, converterID); - - am_sourceID_t gwSourceID1; - enterSourceDB("gwSource2", domainID1, cf2, gwSourceID1); - am_sinkID_t gwSinkID1; - enterSinkDB("gwSink2", domainID1, cf1, gwSinkID1); - am_converterID_t converterID1; - enterConverterDB("converter2", domainID1, cf2, cf1, matrix, gwSourceID1, gwSinkID1, converterID1); - - am_sourceID_t gwSourceID2; - enterSourceDB("gwSource3", domainID1, cf3, gwSourceID2); - am_sinkID_t gwSinkID2; - enterSinkDB("gwSink3", domainID1, cf2, gwSinkID2); - am_converterID_t converterID2; - enterConverterDB("converter3", domainID1, cf3, cf2, matrix, gwSourceID2, gwSinkID2, converterID2); - - am::am_Source_s source; - am::am_Sink_s sink; - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - - std::vector<am_Route_s> listRoutes; - std::vector<am_RoutingElement_s> listRoutingElements1; - std::vector<am_RoutingElement_s> listRoutingElements2; - am_RoutingElement_s hopp11; - am_RoutingElement_s hopp12; - am_RoutingElement_s hopp13; - am_RoutingElement_s hopp21; - am_RoutingElement_s hopp22; - - hopp11.sourceID = sourceID; - hopp11.sinkID = gwSinkID; - hopp11.domainID = domainID1; - hopp11.connectionFormat = CF_GENIVI_STEREO; - - hopp12.sourceID = gwSourceID; - hopp12.sinkID = gwSinkID2; - hopp12.domainID = domainID1; - hopp12.connectionFormat = CF_GENIVI_MONO; - - hopp21.sourceID = sourceID; - hopp21.sinkID = gwSinkID1; - hopp21.domainID = domainID1; - hopp21.connectionFormat = CF_GENIVI_STEREO; - - hopp22.sourceID = gwSourceID1; - hopp22.sinkID = gwSinkID2; - hopp22.domainID = domainID1; - hopp22.connectionFormat = CF_GENIVI_MONO; - - hopp13.sourceID = gwSourceID2; - hopp13.sinkID = sinkID; - hopp13.domainID = domainID1; - hopp13.connectionFormat = CF_GENIVI_AUTO; - - listRoutingElements1.push_back(hopp11); - listRoutingElements1.push_back(hopp12); - listRoutingElements1.push_back(hopp13); - - listRoutingElements2.push_back(hopp21); - listRoutingElements2.push_back(hopp22); - listRoutingElements2.push_back(hopp13); - - am_Route_s compareRoute1; - compareRoute1.route = listRoutingElements1; - compareRoute1.sinkID = sinkID; - compareRoute1.sourceID = sourceID; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(2), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])||pCF.compareRoute(compareRoute1,listRoutes[1])); - - am_Route_s compareRoute2; - compareRoute2.route = listRoutingElements2; - compareRoute2.sinkID = sinkID; - compareRoute2.sourceID = sourceID; - ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[1])||pCF.compareRoute(compareRoute2,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,route2Domains1Source1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1, domainID2; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - - am_sourceID_t sourceID; - std::vector<am_CustomConnectionFormat_t> cf1; - cf1.push_back(CF_GENIVI_STEREO); - enterSourceDB("source1", domainID1, cf1, sourceID); - - am_sinkID_t sinkID; - std::vector<am_CustomConnectionFormat_t> cf2; - cf2.push_back(CF_GENIVI_ANALOG); - enterSinkDB("sink1", domainID2, cf2, sinkID); - - am_sourceID_t gwSourceID; - std::vector<am_CustomConnectionFormat_t> cf3; - cf3.push_back(CF_GENIVI_ANALOG); - enterSourceDB("gwSource1", domainID2, cf3, gwSourceID); - - am_sinkID_t gwSinkID; - std::vector<am_CustomConnectionFormat_t> cf4; - cf4.push_back(CF_GENIVI_STEREO); - enterSinkDB("gwSink1", domainID1, cf4, gwSinkID); - - am_gatewayID_t gatewayID; - std::vector<bool> matrix; - matrix.push_back(true); - enterGatewayDB("gateway", domainID2, domainID1, cf3, cf4, matrix, gwSourceID, gwSinkID, gatewayID); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = sinkID; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, gwSinkID, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gwSourceID, sinkID, domainID2, CF_GENIVI_ANALOG}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,route3Domains1Source1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1, domainID2, domainID3; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - enterDomainDB("domain3", domainID3); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - - am_sinkID_t gwSinkID1; - enterSinkDB("gwSink1", domainID1, cfStereo, gwSinkID1); - - am_sourceID_t gwSourceID1; - enterSourceDB("gwSource1", domainID2, cfMono, gwSourceID1); - - std::vector<bool> matrix; - matrix.push_back(true); - - am_gatewayID_t gatewayID; - enterGatewayDB("gateway", domainID2, domainID1, cfMono, cfStereo, matrix, gwSourceID1, gwSinkID1, gatewayID); - - am_sourceID_t gwSourceID2; - enterSourceDB("gwSource2", domainID3, cfStereo, gwSourceID2); - - am_sinkID_t gwSinkID2; - enterSinkDB("gwSink2", domainID2, cfMono, gwSinkID2); - - am_sinkID_t sinkID; - enterSinkDB("sink1", domainID3, cfStereo, sinkID); - - am_gatewayID_t gatewayID1; - enterGatewayDB("gateway", domainID3, domainID2, cfStereo, cfMono, matrix, gwSourceID2, gwSinkID2, gatewayID1); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = sinkID; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, gwSinkID1, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gwSourceID1, gwSinkID2, domainID2, CF_GENIVI_MONO}); - compareRoute1.route.push_back({gwSourceID2, sinkID, domainID3, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest,routeSource1Sink2PathThroughConv1Gate1) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - std::vector<bool> matrix; - matrix.push_back(true); - am_domainID_t domainID1, domainID2; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - - am_sinkID_t gwSinkID1; - enterSinkDB("gwSink1", domainID1, cfMono, gwSinkID1); - - am_sinkID_t coSinkID21; - enterSinkDB("coSink21", domainID1, cfStereo, coSinkID21); - - am_sourceID_t coSourceID21; - enterSourceDB("coSource21", domainID1, cfMono, coSourceID21); - - am_converterID_t converterID1; - enterConverterDB("converter1", domainID1, cfMono, cfStereo, matrix, coSourceID21, coSinkID21, converterID1); - - am_sourceID_t gwSourceID1; - enterSourceDB("gwSource21", domainID2, cfAuto, gwSourceID1); - - am_gatewayID_t gatewayID; - enterGatewayDB("gateway1", domainID2, domainID1, cfAuto, cfMono, matrix, gwSourceID1, gwSinkID1, gatewayID); - - am_sinkID_t sinkID1; - enterSinkDB("sink1", domainID2, cfAuto, sinkID1); - - am_sinkID_t sinkID2; - enterSinkDB("sink2", domainID1, cfAuto, sinkID2); - - am::am_Source_s source; - am::am_Sink_s sink1; - pDatabaseHandler.getSinkInfoDB(sinkID1, sink1); - am::am_Sink_s sink2; - pDatabaseHandler.getSinkInfoDB(sinkID2, sink2); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink1, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = sinkID1; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, coSinkID21, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({coSourceID21, gwSinkID1, domainID1, CF_GENIVI_MONO}); - compareRoute1.route.push_back({gwSourceID1, sinkID1, domainID2, CF_GENIVI_AUTO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); - - listRoutes.clear(); - getRoute(false, source, sink2, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); -} - -TEST_F(CAmRouterMapTest, routeSource1Sink1PathThroughDomain2) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - std::vector<bool> matrix; - matrix.push_back(true); - am_domainID_t domainID1, domainID2; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - - am_sinkID_t gwSinkID11; - enterSinkDB("gwSink11", domainID1, cfStereo, gwSinkID11); - am_sourceID_t gwSourceID11; - enterSourceDB("gwSource11", domainID2, cfAnalog, gwSourceID11); - am_converterID_t gatewayID1; - enterGatewayDB("gateway1", domainID2, domainID1, cfAnalog, cfStereo, matrix, gwSourceID11, gwSinkID11, gatewayID1); - - am_sinkID_t gwSinkID21; - enterSinkDB("gwSink21", domainID2, cfAnalog, gwSinkID21); - am_sourceID_t gwSourceID12; - enterSourceDB("gwSource12", domainID1, cfAuto, gwSourceID12); - am_gatewayID_t gatewayID2; - enterGatewayDB("gateway2", domainID1, domainID2, cfAuto, cfAnalog, matrix, gwSourceID12, gwSinkID21, gatewayID2); - - am_sinkID_t sink1ID; - enterSinkDB("sink1", domainID1, cfAuto, sink1ID); - am_sinkID_t sink2ID; - enterSinkDB("sink2", domainID2, cfAnalog, sink2ID); - - std::vector<am_Route_s> listRoutes; - - am::am_Source_s source; - am::am_Sink_s sink1; - pDatabaseHandler.getSinkInfoDB(sink1ID, sink1); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - getRoute(false, source, sink1, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); - - am::am_Sink_s sink2; - pDatabaseHandler.getSinkInfoDB(sink2ID, sink2); - - getRoute(false, source, sink2, listRoutes); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = sink2ID; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, gwSinkID11, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gwSourceID11, sink2ID, domainID2, CF_GENIVI_ANALOG}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest, routeSource1Sink1PathThroughGate1Conv2Gate2) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - std::vector<bool> matrix; - matrix.push_back(true); - am_domainID_t domainID1, domainID2; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - - am_sinkID_t gwSinkID11; - enterSinkDB("gwSink11", domainID1, cfStereo, gwSinkID11); - - am_sourceID_t gwSourceID21; - enterSourceDB("gwSource21", domainID2, cfAnalog, gwSourceID21); - - am_converterID_t gatewayID1; - enterGatewayDB("gateway1", domainID2, domainID1, cfAnalog, cfStereo, matrix, gwSourceID21, gwSinkID11, gatewayID1); - - am_sinkID_t gwSinkID21; - enterSinkDB("gwSink21", domainID2, cfStereo, gwSinkID21); - - am_sourceID_t gwSourceID12; - enterSourceDB("gwSource12", domainID1, cfAuto, gwSourceID12); - - am_sinkID_t coSinkID21; - enterSinkDB("coSink21", domainID2, cfAnalog, coSinkID21); - - am_sourceID_t coSourceID21; - enterSourceDB("coSource21", domainID2, cfStereo, coSourceID21); - - am_converterID_t converterID2; - enterConverterDB("converter2", domainID2, cfStereo, cfAnalog, matrix, coSourceID21, coSinkID21, converterID2); - - am_gatewayID_t gatewayID2; - enterGatewayDB("gateway2", domainID1, domainID2, cfAuto, cfStereo, matrix, gwSourceID12, gwSinkID21, gatewayID2); - - am_sinkID_t sink1ID; - enterSinkDB("sink1", domainID1, cfAuto, sink1ID); - am_sinkID_t sink2ID; - enterSinkDB("sink2", domainID2, cfStereo, sink2ID); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sink1ID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); - - am::am_Sink_s sink1; - pDatabaseHandler.getSinkInfoDB(sink2ID, sink1); - getRoute(false, source, sink1, listRoutes); - - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - am_Route_s compareRoute1; - compareRoute1.sinkID = sink2ID; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, gwSinkID11, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gwSourceID21, coSinkID21, domainID2, CF_GENIVI_ANALOG}); - compareRoute1.route.push_back({coSourceID21, sink2ID, domainID2, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); -} - -TEST_F(CAmRouterMapTest, routeSource1Sink1PathThroughConv1Gate1Conv2Gate2) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - std::vector<bool> matrix; - matrix.push_back(true); - am_domainID_t domainID1, domainID2; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - std::vector<am_CustomConnectionFormat_t> cfFuture1; - cfFuture1.push_back(5); - std::vector<am_CustomConnectionFormat_t> cfFuture2; - cfFuture2.push_back(6); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - - am_sinkID_t coSinkID11; - enterSinkDB("coSink11", domainID1, cfStereo, coSinkID11); - am_sourceID_t coSourceID11; - enterSourceDB("coSource11", domainID1, cfFuture1, coSourceID11); - am_converterID_t converterID11; - enterConverterDB("converter11", domainID1, cfFuture1, cfStereo, matrix, coSourceID11, coSinkID11, converterID11); - - am_sinkID_t coSinkID12; - enterSinkDB("coSink12", domainID1, cfStereo, coSinkID12); - am_sourceID_t coSourceID12; - enterSourceDB("coSource12", domainID1, cfFuture2, coSourceID12); - am_converterID_t converterID12; - enterConverterDB("converter12", domainID1, cfFuture2, cfStereo, matrix, coSourceID12, coSinkID12, converterID12); - - am_sinkID_t coSinkID13; - enterSinkDB("coSink13", domainID1, cfFuture2, coSinkID13); - am_sourceID_t coSourceID13; - enterSourceDB("coSource13", domainID1, cfFuture1, coSourceID13); - am_converterID_t converterID13; - enterConverterDB("converter13", domainID1, cfFuture1, cfFuture2, matrix, coSourceID13, coSinkID13, converterID13); - - am_sinkID_t gwSinkID11; - enterSinkDB("gwSink11", domainID1, cfFuture1, gwSinkID11); - am_sourceID_t gwSourceID21; - enterSourceDB("gwSource21", domainID2, cfAnalog, gwSourceID21); - am_converterID_t gatewayID1; - enterGatewayDB("gateway1", domainID2, domainID1, cfAnalog, cfFuture1, matrix, gwSourceID21, gwSinkID11, gatewayID1); - - am_sinkID_t gwSinkID21; - enterSinkDB("gwSink21", domainID2, cfStereo, gwSinkID21); - - am_sourceID_t gwSourceID12; - enterSourceDB("gwSource12", domainID1, cfAuto, gwSourceID12); - - am_sinkID_t coSinkID21; - enterSinkDB("coSink21", domainID2, cfAnalog, coSinkID21); - - am_sourceID_t coSourceID21; - enterSourceDB("coSource21", domainID2, cfStereo, coSourceID21); - - am_converterID_t converterID2; - enterConverterDB("converter2", domainID2, cfStereo, cfAnalog, matrix, coSourceID21, coSinkID21, converterID2); - - - am_gatewayID_t gatewayID2; - enterGatewayDB("gateway2", domainID1, domainID2, cfAuto, cfStereo, matrix, gwSourceID12, gwSinkID21, gatewayID2); - - am_sinkID_t sinkID; - enterSinkDB("sink1", domainID1, cfAuto, sinkID); - - am::am_Source_s source; - am::am_Sink_s sink; - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(0), listRoutes.size()); - - am::am_Sink_s sink2; - pDatabaseHandler.getSinkInfoDB(coSinkID21, sink2); - pRouter.getRoute(false, source, sink2, listRoutes); - ASSERT_EQ(static_cast<uint>(2), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = coSinkID21; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, coSinkID11, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({coSourceID11, gwSinkID11, domainID1, 5}); - compareRoute1.route.push_back({gwSourceID21, coSinkID21, domainID2, CF_GENIVI_ANALOG}); - - am_Route_s compareRoute2; - compareRoute2.sinkID = coSinkID21; - compareRoute2.sourceID = sourceID; - compareRoute2.route.push_back({sourceID, coSinkID12, domainID1, CF_GENIVI_STEREO}); - compareRoute2.route.push_back({coSourceID12, coSinkID13, domainID1, 6}); - compareRoute2.route.push_back({coSourceID13, gwSinkID11, domainID1, 5}); - compareRoute2.route.push_back({gwSourceID21, coSinkID21, domainID2, CF_GENIVI_ANALOG}); - - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[1])||pCF.compareRoute(compareRoute1,listRoutes[0])); - ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[0])||pCF.compareRoute(compareRoute2,listRoutes[1])); -} - -TEST_F(CAmRouterMapTest,route3Domains1Source1SinkGwCycles) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domain1ID, domain2ID, domain3ID; - enterDomainDB("domain1", domain1ID); - enterDomainDB("domain2", domain2ID); - enterDomainDB("domain3", domain3ID); - - //just make so many cycles as possible - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog = cfStereo; - std::vector<am_CustomConnectionFormat_t> cfMono = cfStereo; - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - - am_sourceID_t source1ID; - enterSourceDB("source1", domain1ID, cfStereo, source1ID); - am_sinkID_t gw1SinkID; - enterSinkDB("gw1Sink", domain1ID, cfStereo, gw1SinkID); - am_sinkID_t gw2SinkID; - enterSinkDB("gw2Sink", domain1ID, cfStereo, gw2SinkID); - am_sourceID_t gw3SourceID; - enterSourceDB("gw3Source", domain1ID, cfAnalog, gw3SourceID); - am_sourceID_t gw4SourceID; - enterSourceDB("gw4Source", domain1ID, cfAnalog, gw4SourceID); - am_sinkID_t gw5SinkID; - enterSinkDB("gw5Sink", domain1ID, cfAnalog, gw5SinkID); - - am_sourceID_t gw1SourceID; - enterSourceDB("gw1Source", domain2ID, cfMono, gw1SourceID); - am_sourceID_t gw2SourceID; - enterSourceDB("gw2Source", domain2ID, cfMono, gw2SourceID); - am_sinkID_t gw3SinkID; - enterSinkDB("gw3Sink", domain2ID, cfMono, gw3SinkID); - am_sinkID_t gw4SinkID; - enterSinkDB("gw4Sink", domain2ID, cfMono, gw4SinkID); - - am_sourceID_t gw5SourceID; - enterSourceDB("gw5Source", domain3ID, cfStereo, gw5SourceID); - am_sinkID_t sink1ID; - enterSinkDB("sink1", domain3ID, cfStereo, sink1ID); - - std::vector<bool> matrixT; - matrixT.push_back(true); - std::vector<bool> matrixF; - matrixF.push_back(false); - - am_gatewayID_t gateway1ID; - enterGatewayDB("gateway1", domain2ID, domain1ID, cfMono, cfStereo, matrixT, gw1SourceID, gw1SinkID, gateway1ID); - am_gatewayID_t gateway2ID; - enterGatewayDB("gateway2", domain2ID, domain1ID, cfMono, cfStereo, matrixT, gw2SourceID, gw2SinkID, gateway2ID); - am_gatewayID_t gateway3ID; - enterGatewayDB("gateway3", domain1ID, domain2ID, cfAnalog, cfMono, matrixT, gw3SourceID, gw3SinkID, gateway3ID); - am_gatewayID_t gateway4ID; - enterGatewayDB("gateway4", domain1ID, domain2ID, cfAnalog, cfMono, matrixT, gw4SourceID, gw4SinkID, gateway4ID); - am_gatewayID_t gateway5ID; - enterGatewayDB("gateway5", domain3ID, domain1ID, cfStereo, cfAnalog, matrixT, gw5SourceID, gw5SinkID, gateway5ID); - - pRouter.load(false); - - CAmRoutingNode* sourceNode = pRouter.sourceNodeWithID(source1ID); - CAmRoutingNode* sinkNode = pRouter.sinkNodeWithID(sink1ID); - - ASSERT_TRUE(sourceNode); - ASSERT_TRUE(sinkNode); - - std::vector<am_Route_s> listRoutes; - std::vector<std::vector<CAmRoutingNode*>> resultNodesPath; - - am_Route_s compareRoute1; - compareRoute1.sinkID = sink1ID; - compareRoute1.sourceID = source1ID; - -#define DO_ASSERT() \ - {\ - bool didMatch = false; \ - for(auto it = listRoutes.begin(); it!=listRoutes.end(); it++) \ - didMatch|=pCF.compareRoute(compareRoute1,*it); \ - ASSERT_TRUE(didMatch); \ - } - -#ifdef ROUTING_BUILD_CONNECTIONS - getAllPaths(*sourceNode, *sinkNode, listRoutes, resultNodesPath, true); - ASSERT_EQ(static_cast<uint>(9), listRoutes.size()); - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw1SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw1SourceID, gw4SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw4SourceID, gw2SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw2SourceID, gw3SinkID, domain2ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw3SourceID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() - - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); - DO_ASSERT() -#else - compareRoute1.route.clear(); - compareRoute1.route.push_back({source1ID, gw5SinkID, domain1ID, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gw5SourceID, sink1ID, domain3ID, CF_GENIVI_STEREO}); -#endif - - listRoutes.clear(); - resultNodesPath.clear(); - getAllPaths(*sourceNode, *sinkNode, listRoutes, resultNodesPath, false); - ASSERT_EQ(static_cast<uint>(1), listRoutes.size()); - DO_ASSERT() -} - -TEST_F(CAmRouterMapTest,route3Domains1Source3Gateways3Convertres1Sink) -{ - EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK))); - - am_domainID_t domainID1, domainID2, domainID3; - enterDomainDB("domain1", domainID1); - enterDomainDB("domain2", domainID2); - enterDomainDB("domain3", domainID3); - - std::vector<am_CustomConnectionFormat_t> cfStereo; - cfStereo.push_back(CF_GENIVI_STEREO); - std::vector<am_CustomConnectionFormat_t> cfAnalog; - cfAnalog.push_back(CF_GENIVI_ANALOG); - std::vector<am_CustomConnectionFormat_t> cfMono; - cfMono.push_back(CF_GENIVI_MONO); - std::vector<am_CustomConnectionFormat_t> cfAuto; - cfAuto.push_back(CF_GENIVI_AUTO); - - am_sourceID_t sourceID; - enterSourceDB("source1", domainID1, cfStereo, sourceID); - am_sinkID_t gwSinkID1; - enterSinkDB("gwSink1", domainID1, cfStereo, gwSinkID1); - am_sinkID_t gwSinkID21; - enterSinkDB("gwSink21", domainID1, cfStereo, gwSinkID21); - - am_sourceID_t gwSourceID1; - enterSourceDB("gwSource1", domainID2, cfMono, gwSourceID1); - am_sinkID_t gwSinkID22; - enterSinkDB("gwSink22", domainID2, cfMono, gwSinkID22); - - am_sourceID_t gwSourceID21; - enterSourceDB("gwSource21", domainID3, cfAuto, gwSourceID21); - - am_sourceID_t gwSourceID22; - enterSourceDB("gwSource22", domainID3, cfAuto, gwSourceID22); - am_sourceID_t gwSourceID5; - enterSourceDB("gwSource5", domainID3, cfStereo, gwSourceID5); - am_sinkID_t gwSinkID5; - enterSinkDB("gwSink5", domainID3, cfAnalog, gwSinkID5); - am_sourceID_t gwSourceID3; - enterSourceDB("gwSource3", domainID3, cfAnalog, gwSourceID3); - am_sinkID_t gwSinkID3; - enterSinkDB("gwSink3", domainID3, cfAuto, gwSinkID3); - am_sourceID_t gwSourceID4; - enterSourceDB("gwSource4", domainID3, cfStereo, gwSourceID4); - am_sinkID_t gwSinkID4; - enterSinkDB("gwSink4", domainID3, cfAnalog, gwSinkID4); - am_sinkID_t sinkID; - enterSinkDB("sink1", domainID3, cfStereo, sinkID); - - std::vector<bool> matrix; - matrix.push_back(true); - am_gatewayID_t gatewayID; - enterGatewayDB("gateway1", domainID2, domainID1, cfMono, cfStereo, matrix, gwSourceID1, gwSinkID1, gatewayID); - am_gatewayID_t gatewayID22; - enterGatewayDB("gateway22", domainID3, domainID2, cfAuto, cfMono, matrix, gwSourceID22, gwSinkID22, gatewayID22); - am_gatewayID_t gatewayID21; - enterGatewayDB("gateway21", domainID3, domainID1, cfAuto, cfStereo, matrix, gwSourceID21, gwSinkID21, gatewayID21); - am_converterID_t converterID1; - enterConverterDB("converter1", domainID3, cfAnalog, cfAuto, matrix, gwSourceID3, gwSinkID3, converterID1); - am_converterID_t converterID2; - enterConverterDB("converter2", domainID3, cfStereo, cfAnalog, matrix, gwSourceID4, gwSinkID4, converterID2); - am_converterID_t converterID3; - enterConverterDB("converter3", domainID3, cfStereo, cfAnalog, matrix, gwSourceID5, gwSinkID5, converterID3); - - am::am_Source_s source; - am::am_Sink_s sink; - - pDatabaseHandler.getSinkInfoDB(sinkID, sink); - pDatabaseHandler.getSourceInfoDB(sourceID, source); - - std::vector<am_Route_s> listRoutes; - - getRoute(false, source, sink, listRoutes); - ASSERT_EQ(static_cast<uint>(4), listRoutes.size()); - - am_Route_s compareRoute1; - compareRoute1.sinkID = sinkID; - compareRoute1.sourceID = sourceID; - compareRoute1.route.push_back({sourceID, gwSinkID1, domainID1, CF_GENIVI_STEREO}); - compareRoute1.route.push_back({gwSourceID1, gwSinkID22, domainID2, CF_GENIVI_MONO}); - compareRoute1.route.push_back({gwSourceID22, gwSinkID3, domainID3, CF_GENIVI_AUTO}); - compareRoute1.route.push_back({gwSourceID3, gwSinkID4, domainID3, CF_GENIVI_ANALOG}); - compareRoute1.route.push_back({gwSourceID4, sinkID, domainID3, CF_GENIVI_STEREO}); - - am_Route_s compareRoute2; - compareRoute2.sinkID = sinkID; - compareRoute2.sourceID = sourceID; - compareRoute2.route.push_back({sourceID, gwSinkID1, domainID1, CF_GENIVI_STEREO}); - compareRoute2.route.push_back({gwSourceID1, gwSinkID22, domainID2, CF_GENIVI_MONO}); - compareRoute2.route.push_back({gwSourceID22, gwSinkID3, domainID3, CF_GENIVI_AUTO}); - compareRoute2.route.push_back({gwSourceID3, gwSinkID5, domainID3, CF_GENIVI_ANALOG}); - compareRoute2.route.push_back({gwSourceID5, sinkID, domainID3, CF_GENIVI_STEREO}); - - am_Route_s compareRoute3; - compareRoute3.sinkID = sinkID; - compareRoute3.sourceID = sourceID; - compareRoute3.route.push_back({sourceID, gwSinkID21, domainID1, CF_GENIVI_STEREO}); - compareRoute3.route.push_back({gwSourceID21, gwSinkID3, domainID3, CF_GENIVI_AUTO}); - compareRoute3.route.push_back({gwSourceID3, gwSinkID4, domainID3, CF_GENIVI_ANALOG}); - compareRoute3.route.push_back({gwSourceID4, sinkID, domainID3, CF_GENIVI_STEREO}); - - am_Route_s compareRoute4; - compareRoute4.sinkID = sinkID; - compareRoute4.sourceID = sourceID; - compareRoute4.route.push_back({sourceID, gwSinkID21, domainID1, CF_GENIVI_STEREO}); - compareRoute4.route.push_back({gwSourceID21, gwSinkID3, domainID3, CF_GENIVI_AUTO}); - compareRoute4.route.push_back({gwSourceID3, gwSinkID5, domainID3, CF_GENIVI_ANALOG}); - compareRoute4.route.push_back({gwSourceID5, sinkID, domainID3, CF_GENIVI_STEREO}); - - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])|| - pCF.compareRoute(compareRoute1,listRoutes[1])|| - pCF.compareRoute(compareRoute1,listRoutes[2])|| - pCF.compareRoute(compareRoute1,listRoutes[3])); - - ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[0])|| - pCF.compareRoute(compareRoute2,listRoutes[1])|| - pCF.compareRoute(compareRoute2,listRoutes[2])|| - pCF.compareRoute(compareRoute2,listRoutes[3])); - - ASSERT_TRUE(pCF.compareRoute(compareRoute3,listRoutes[0])|| - pCF.compareRoute(compareRoute3,listRoutes[1])|| - pCF.compareRoute(compareRoute3,listRoutes[2])|| - pCF.compareRoute(compareRoute3,listRoutes[3])); - - ASSERT_TRUE(pCF.compareRoute(compareRoute4,listRoutes[0])|| - pCF.compareRoute(compareRoute4,listRoutes[1])|| - pCF.compareRoute(compareRoute4,listRoutes[2])|| - pCF.compareRoute(compareRoute4,listRoutes[3])); -} - -int main(int argc, char **argv) -{ -#ifdef WITH_DLT - CAmDltWrapper::instance()->registerApp("routing", "CAmRouterMapTest"); -#else - CAmDltWrapper::instance(true)->registerApp("routing", "CAmRouterMapTest"); -#endif - logInfo("Routing Test started "); - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} - diff --git a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.h b/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.h deleted file mode 100644 index 65ff97b..0000000 --- a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.h +++ /dev/null @@ -1,108 +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 Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013, 2014 - * - * For further information see http://www.genivi.org/. - * - */ - -#ifndef MAPTEST_H_ -#define MAPTEST_H_ - -#define UNIT_TEST 1 - -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include <algorithm> -#include <string> -#include <vector> -#include <set> -#include "CAmDatabaseHandlerMap.h" -#include "CAmControlReceiver.h" -#include "CAmControlSender.h" -#include "CAmDatabaseObserver.h" -#include "CAmRoutingSender.h" -#include "CAmRouter.h" -#include "CAmSocketHandler.h" -#include "../IAmControlBackdoor.h" -#include "../IAmCommandBackdoor.h" -#include "../CAmCommonFunctions.h" -#include "../MockIAmControlSend.h" -#include "../MockIAmCommandSend.h" - - -namespace am -{ - -class CAmRouterMapTest: public ::testing::Test -{ -public: - CAmRouterMapTest(); - ~CAmRouterMapTest(); - std::vector<std::string> plistRoutingPluginDirs; - std::vector<std::string> plistCommandPluginDirs; - CAmSocketHandler pSocketHandler; - CAmControlSender pControlSender; - CAmDatabaseHandlerMap pDatabaseHandler; - CAmRouter pRouter; - CAmRoutingSender pRoutingSender; - CAmCommandSender pCommandSender; - MockIAmCommandSend pMockInterface; - MockIAmControlSend pMockControlInterface; - IAmRoutingBackdoor pRoutingInterfaceBackdoor; - IAmCommandBackdoor pCommandInterfaceBackdoor; - IAmControlBackdoor pControlInterfaceBackdoor; - CAmControlReceiver pControlReceiver; - CAmDatabaseObserver pObserver; - CAmCommonFunctions pCF; - void SetUp(); - void TearDown(); - - void createMainConnectionSetup(); - - void enterDomainDB(const std::string & domainName, am_domainID_t & domainID); - void enterSourceDB(const std::string & sourceName, const am_domainID_t domainID, const std::vector<am_CustomConnectionFormat_t> & connectionFormats, am_sourceID_t & sourceID); - void enterSinkDB(const std::string & sinkName, const am_domainID_t domainID, const std::vector<am_CustomConnectionFormat_t> & connectionFormats, am_sinkID_t & sinkID); - void enterGatewayDB(const std::string & gwName, - const am_domainID_t domainSourceID, - const am_domainID_t domainSinkID, - const std::vector<am_CustomConnectionFormat_t> & sourceConnectionFormats, - const std::vector<am_CustomConnectionFormat_t> & sinkConnectionFormats, - const std::vector<bool> & matrix, - const am_sourceID_t & sourceID, - const am_sinkID_t & sinkID, - am_gatewayID_t & gatewayID); - void enterConverterDB(const std::string & gwName, - const am_domainID_t domainID, - const std::vector<am_CustomConnectionFormat_t> & sourceConnectionFormats, - const std::vector<am_CustomConnectionFormat_t> & sinkConnectionFormats, - const std::vector<bool> & matrix, - const am_sourceID_t & sourceID, - const am_sinkID_t & sinkID, - am_converterID_t & converterID); - void getRoute(const bool onlyfree, const am_sourceID_t sourceID, const am_sinkID_t sinkID, std::vector<am_Route_s>& returnList); - void getRoute(const bool onlyfree, const am_Source_s & aSource, const am_Sink_s & aSink, std::vector<am_Route_s> & listRoutes); - void getAllPaths(CAmRoutingNode & aSource, - CAmRoutingNode & aSink, - std::vector<am_Route_s> & resultPath, - std::vector<std::vector<CAmRoutingNode*>> & resultNodesPath, - const bool includeCycles); -}; - -} - -#endif /* MAPTEST_H_ */ diff --git a/AudioManagerDaemon/test/AmRouterMapTest/CMakeLists.txt b/AudioManagerDaemon/test/AmRouterMapTest/CMakeLists.txt deleted file mode 100644 index 720ef64..0000000 --- a/AudioManagerDaemon/test/AmRouterMapTest/CMakeLists.txt +++ /dev/null @@ -1,81 +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 (AmRouterMapTest) - -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -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_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} - ${CMAKE_SOURCE_DIR} - ${INCLUDE_FOLDER} - ${GOOGLE_TEST_INCLUDE_DIR} - ${GMOCK_INCLUDE_DIR} -) - -file(GLOB ROUTINGMAP_SRCS_CXX - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmDatabaseHandlerMap.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmDatabaseObserver.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmCommandSender.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRoutingSender.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmControlReceiver.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmControlSender.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRouter.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmCommandReceiver.cpp" - "${AUDIOMANAGER_DAEMON_FOLDER}/src/CAmRoutingReceiver.cpp" - "../CAmCommonFunctions.cpp" - "*.cpp" - ) - -ADD_EXECUTABLE( AmRouterMapTest ${ROUTINGMAP_SRCS_CXX}) - -TARGET_LINK_LIBRARIES(AmRouterMapTest - ${AM_LINK_LIBS} - gtest - gmock -) - -ADD_DEPENDENCIES(AmRouterMapTest gtest gmock AudioManagerUtilities) - -INSTALL(TARGETS AmRouterMapTest - DESTINATION ${TEST_EXECUTABLE_INSTALL_PATH} - PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ - COMPONENT tests -) - |