summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Linke <christian.linke@bmw.de>2015-07-01 09:27:22 +0100
committerChristian Linke <christian.linke@bmw.de>2015-07-01 09:27:22 +0100
commitd078a99c5aa90d1d061eb54b98b6cded128e2d48 (patch)
treedf3b0afe5c6d15da3f3b1dac08dee87e4774b784
parent5d4c1882bbb615720f395c4ff7d0a7223cbf3efb (diff)
downloadaudiomanager-d078a99c5aa90d1d061eb54b98b6cded128e2d48.tar.gz
* enable entering domains with predefined id
Signed-off-by: Christian Linke <christian.linke@bmw.de>
-rw-r--r--AudioManagerDaemon/src/CAmDatabaseHandlerMap.cpp9
-rw-r--r--AudioManagerDaemon/test/AmDatabaseHandlerTest/CAmDatabaseHandlerTest.cpp1
-rw-r--r--AudioManagerDaemon/test/AmMapHandlerTest/CAmMapHandlerTest.cpp27
3 files changed, 37 insertions, 0 deletions
diff --git a/AudioManagerDaemon/src/CAmDatabaseHandlerMap.cpp b/AudioManagerDaemon/src/CAmDatabaseHandlerMap.cpp
index 3f031ff..766ad95 100644
--- a/AudioManagerDaemon/src/CAmDatabaseHandlerMap.cpp
+++ b/AudioManagerDaemon/src/CAmDatabaseHandlerMap.cpp
@@ -470,6 +470,15 @@ am_Error_e CAmDatabaseHandlerMap::enterDomainDB(const am_Domain_s & domainData,
mpDatabaseObserver->newDomain(mMappedData.mDomainMap[nextID]);
return (E_OK);
}
+ else if (domainData.domainID!=0 && !existDomain(domainData.domainID))
+ {
+ domainID = domainData.domainID;
+ mMappedData.mDomainMap[domainData.domainID] = domainData;
+ logInfo("DatabaseHandler::enterDomainDB entered predefined domain with name=", domainData.name, "busname=", domainData.busname, "nodename=", domainData.nodename, "predefined ID:", domainID);
+ if (mpDatabaseObserver)
+ mpDatabaseObserver->newDomain(mMappedData.mDomainMap[domainData.domainID]);
+ return (E_OK);
+ }
else
{
if(mMappedData.increaseID(nextID, mMappedData.mCurrentDomainID, domainData.domainID))
diff --git a/AudioManagerDaemon/test/AmDatabaseHandlerTest/CAmDatabaseHandlerTest.cpp b/AudioManagerDaemon/test/AmDatabaseHandlerTest/CAmDatabaseHandlerTest.cpp
index 9cd0277..2062d6d 100644
--- a/AudioManagerDaemon/test/AmDatabaseHandlerTest/CAmDatabaseHandlerTest.cpp
+++ b/AudioManagerDaemon/test/AmDatabaseHandlerTest/CAmDatabaseHandlerTest.cpp
@@ -38,6 +38,7 @@ extern bool equalNotificationConfiguration(const am_NotificationConfiguration_s
extern bool equalClassProperties(const am_ClassProperty_s a, const am_ClassProperty_s b);
extern std::string int2string(int i);
+
CAmDatabaseHandlerTest::CAmDatabaseHandlerTest() :
plistRoutingPluginDirs(), //
plistCommandPluginDirs(), //
diff --git a/AudioManagerDaemon/test/AmMapHandlerTest/CAmMapHandlerTest.cpp b/AudioManagerDaemon/test/AmMapHandlerTest/CAmMapHandlerTest.cpp
index b839a75..30ca2db 100644
--- a/AudioManagerDaemon/test/AmMapHandlerTest/CAmMapHandlerTest.cpp
+++ b/AudioManagerDaemon/test/AmMapHandlerTest/CAmMapHandlerTest.cpp
@@ -2148,6 +2148,33 @@ TEST_F(CAmMapHandlerTest,registerDomainCorrect)
ASSERT_EQ(true, equal);
}
+TEST_F(CAmMapHandlerTest,registerDomainPredefined)
+{
+ //initialize domain
+ std::vector<am_Domain_s> returnList;
+ am_Domain_s domain;
+ am_domainID_t domainID = 10;
+ pCF.createDomain(domain);
+
+ ASSERT_EQ(E_OK,pDatabaseHandler.enterDomainDB(domain,domainID))
+ << "ERROR: database error";
+ ASSERT_NE(10,domainID)
+ << "ERROR: domainID not predefined one";
+
+ //now check if we read out the correct values
+ ASSERT_EQ(E_OK, pDatabaseHandler.getListDomains(returnList));
+ bool equal = true;
+ std::vector<am_Domain_s>::iterator listIterator = returnList.begin();
+ for (; listIterator < returnList.end(); ++listIterator)
+ {
+ if (listIterator->domainID == domainID)
+ {
+ equal = equal && (listIterator->name.compare(domain.name) == 0) && (listIterator->busname.compare(domain.busname) == 0) && (listIterator->complete == domain.complete) && (listIterator->early == domain.early) && (listIterator->state == domain.state);
+ }
+ }
+ ASSERT_EQ(true, equal);
+}
+
TEST_F(CAmMapHandlerTest,registerConnectionCorrect)
{
am_Connection_s connection;