From 84454c74e9654fac18391d0ed8e6d3bdec1f59a6 Mon Sep 17 00:00:00 2001 From: wonny Date: Mon, 28 Mar 2016 21:53:58 +0900 Subject: [PATCH] Modified SceneManager Unittest - SceneTest : fix not creating scene - RemoteSceneActionTest : fix setup() logic Change-Id: Ie923d766e5da8ac7a3798f5a7febfb9404e7a2d5 Signed-off-by: wonny Reviewed-on: https://gerrit.iotivity.org/gerrit/7401 Reviewed-by: Uze Choi Tested-by: jenkins-iotivity --- .../unittests/RemoteSceneActionTest.cpp | 162 ++++++++++----------- service/scene-manager/unittests/SceneTest.cpp | 1 + 2 files changed, 78 insertions(+), 85 deletions(-) mode change 100644 => 100755 service/scene-manager/unittests/RemoteSceneActionTest.cpp diff --git a/service/scene-manager/unittests/RemoteSceneActionTest.cpp b/service/scene-manager/unittests/RemoteSceneActionTest.cpp old mode 100644 new mode 100755 index ac86fa9..a2cc988 --- a/service/scene-manager/unittests/RemoteSceneActionTest.cpp +++ b/service/scene-manager/unittests/RemoteSceneActionTest.cpp @@ -43,43 +43,84 @@ constexpr char VALUE[]{ "off" }; static int lightNum = 0; -class RemoteSceneActionTest : public TestWithMock +RCSRemoteResourceObject::Ptr pListResource; +RemoteSceneList::Ptr pSceneList; +RemoteSceneCollection::Ptr pSceneCollection; +RemoteScene::Ptr pScene; +RemoteSceneAction::Ptr pSceneAction; +RCSRemoteResourceObject::Ptr pLightResource; +std::condition_variable cond; +std::mutex g_mutex; + +void onRemoteSceneListCreated(RemoteSceneList::Ptr remoteSceneList, int) { -protected: - void SetUp() - { - TestWithMock::SetUp(); + pSceneList = std::move(remoteSceneList); + cond.notify_all(); +} + +void onRemoteSceneCollectionCreated(RemoteSceneCollection::Ptr remoteSceneCol, int) +{ + pSceneCollection = remoteSceneCol; + cond.notify_all(); +} + +void onRemoteSceneCreated(RemoteScene::Ptr remoteScene, int) +{ + pScene = remoteScene; + cond.notify_all(); +} + +void onRemoteSceneActionCreated(RemoteSceneAction::Ptr remoteSceneAction, int) +{ + pSceneAction = remoteSceneAction; + cond.notify_all(); +} + +void onActionUpdated(int) +{ + cond.notify_all(); +} +void createListServer() +{ + std::vector< std::string > vecRT{ SCENE_LIST_RT }; + std::vector< std::string > vecIF{ OC_RSRVD_INTERFACE_DEFAULT, OC::BATCH_INTERFACE }; + + pListResource = SceneUtils::createRCSResourceObject( + "coap://" + SceneUtils::getNetAddress() + SCENE_LIST_URI, + SCENE_CONNECTIVITY, vecRT, vecIF); +} - SceneList::getInstance()->getName(); - createListServer(); +void waitForCallback(int waitingTime = DEFAULT_WAITTIME) +{ + std::unique_lock< std::mutex > lock{ g_mutex }; + cond.wait_for(lock, std::chrono::milliseconds{ waitingTime }); +} - RemoteSceneList::createInstance(pListResource, std::bind( - &RemoteSceneActionTest::onRemoteSceneListCreated, this, - placeholders::_1, placeholders::_2)); +void setup() +{ + SceneList::getInstance()->getName(); + createListServer(); - waitForCallback(); + RemoteSceneList::createInstance(pListResource, onRemoteSceneListCreated); - pSceneList->addNewSceneCollection(std::bind( - &RemoteSceneActionTest::onRemoteSceneCollectionCreated, this, - placeholders::_1, placeholders::_2)); + waitForCallback(); - waitForCallback(); + pSceneList->addNewSceneCollection(onRemoteSceneCollectionCreated); - pSceneCollection->addNewScene("Test Scene", std::bind( - &RemoteSceneActionTest::onRemoteSceneCreated, this, - placeholders::_1, placeholders::_2)); + waitForCallback(); - waitForCallback(); - } + pSceneCollection->addNewScene("Test Scene", onRemoteSceneCreated); - void createListServer() - { - std::vector< std::string > vecRT{ SCENE_LIST_RT }; - std::vector< std::string > vecIF{ OC_RSRVD_INTERFACE_DEFAULT, OC::BATCH_INTERFACE }; + waitForCallback(); +} - pListResource = SceneUtils::createRCSResourceObject( - "coap://" + SceneUtils::getNetAddress() + SCENE_LIST_URI, - SCENE_CONNECTIVITY, vecRT, vecIF); + +class RemoteSceneActionTest : public TestWithMock +{ +protected: + void SetUp() + { + TestWithMock::SetUp(); } void createLightServer() @@ -94,60 +135,15 @@ protected: + "/" + std::to_string(lightNum++), SCENE_CONNECTIVITY, pResource->getTypes(), pResource->getInterfaces()); } - - void waitForCallback(int waitingTime = DEFAULT_WAITTIME) - { - std::unique_lock< std::mutex > lock{ mutex }; - cond.wait_for(lock, std::chrono::milliseconds{ waitingTime }); - } - -public: - RCSRemoteResourceObject::Ptr pListResource; - RemoteSceneList::Ptr pSceneList; - RemoteSceneCollection::Ptr pSceneCollection; - RemoteScene::Ptr pScene; - RemoteSceneAction::Ptr pSceneAction; - RCSRemoteResourceObject::Ptr pLightResource; - std::condition_variable cond; - std::mutex mutex; - - void onRemoteSceneListCreated(RemoteSceneList::Ptr remoteSceneList, int) - { - pSceneList = std::move(remoteSceneList); - cond.notify_all(); - } - - void onRemoteSceneCollectionCreated(RemoteSceneCollection::Ptr remoteSceneCol, int) - { - pSceneCollection = remoteSceneCol; - cond.notify_all(); - } - - void onRemoteSceneCreated(RemoteScene::Ptr remoteScene, int) - { - pScene = remoteScene; - cond.notify_all(); - } - - void onRemoteSceneActionCreated(RemoteSceneAction::Ptr remoteSceneAction, int) - { - pSceneAction = remoteSceneAction; - cond.notify_all(); - } - - void onActionUpdated(int) - { - cond.notify_all(); - } }; TEST_F(RemoteSceneActionTest, createSceneAction) { + setup(); createLightServer(); pScene->addNewSceneAction(pLightResource, KEY, RCSResourceAttributes::Value(VALUE), - std::bind(&RemoteSceneActionTest::onRemoteSceneActionCreated, this, - placeholders::_1, placeholders::_2)); + onRemoteSceneActionCreated); waitForCallback(); @@ -157,17 +153,16 @@ TEST_F(RemoteSceneActionTest, createSceneAction) TEST_F(RemoteSceneActionTest, createSceneActionWithEmptyRCSRemoteResourceObjectPtr) { ASSERT_THROW(pScene->addNewSceneAction(nullptr, KEY, RCSResourceAttributes::Value(VALUE), - std::bind(&RemoteSceneActionTest::onRemoteSceneActionCreated, this, - placeholders::_1, placeholders::_2)), RCSInvalidParameterException); + onRemoteSceneActionCreated), RCSInvalidParameterException); } TEST_F(RemoteSceneActionTest, getAllRemoteSceneActions) { + setup(); createLightServer(); pScene->addNewSceneAction(pLightResource, KEY, RCSResourceAttributes::Value(VALUE), - std::bind(&RemoteSceneActionTest::onRemoteSceneActionCreated, this, - placeholders::_1, placeholders::_2)); + onRemoteSceneActionCreated); waitForCallback(); @@ -184,8 +179,7 @@ TEST_F(RemoteSceneActionTest, getRemoteSceneAction) createLightServer(); pScene->addNewSceneAction(pLightResource, KEY, RCSResourceAttributes::Value(VALUE), - std::bind(&RemoteSceneActionTest::onRemoteSceneActionCreated, this, - placeholders::_1, placeholders::_2)); + onRemoteSceneActionCreated); waitForCallback(); @@ -200,16 +194,14 @@ TEST_F(RemoteSceneActionTest, updateSceneAction) createLightServer(); pScene->addNewSceneAction(pLightResource, KEY, RCSResourceAttributes::Value(VALUE), - std::bind(&RemoteSceneActionTest::onRemoteSceneActionCreated, this, - placeholders::_1, placeholders::_2)); + onRemoteSceneActionCreated); waitForCallback(); pSceneAction->resetExecutionParameter( - KEY, RCSResourceAttributes::Value("on"), std::bind( - &RemoteSceneActionTest::onActionUpdated, this, placeholders::_1)); + KEY, RCSResourceAttributes::Value("on"), onActionUpdated); waitForCallback(); ASSERT_EQ("on", pSceneAction->getExecutionParameter().at(KEY).get< string >()); -} \ No newline at end of file +} diff --git a/service/scene-manager/unittests/SceneTest.cpp b/service/scene-manager/unittests/SceneTest.cpp index af81258..fc1ec4c 100755 --- a/service/scene-manager/unittests/SceneTest.cpp +++ b/service/scene-manager/unittests/SceneTest.cpp @@ -126,6 +126,7 @@ TEST_F(SceneTest, createSceneInstanceByEmptyName) TEST_F(SceneTest, getSceneInstanceBySceneName) { createSceneCollection(); + createScene(); auto scene = pSceneCollection->getScene("SceneTestName_2"); EXPECT_EQ("SceneTestName_2", scene->getName()); } -- 2.7.4