Modified SceneManager Unittest
authorwonny <jw_wonny.cha@samsung.com>
Mon, 28 Mar 2016 12:53:58 +0000 (21:53 +0900)
committerUze Choi <uzchoi@samsung.com>
Mon, 28 Mar 2016 16:21:05 +0000 (16:21 +0000)
- SceneTest : fix not creating scene
- RemoteSceneActionTest : fix setup() logic

Change-Id: Ie923d766e5da8ac7a3798f5a7febfb9404e7a2d5
Signed-off-by: wonny <jw_wonny.cha@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/7401
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
service/scene-manager/unittests/RemoteSceneActionTest.cpp [changed mode: 0644->0755]
service/scene-manager/unittests/SceneTest.cpp

old mode 100644 (file)
new mode 100755 (executable)
index ac86fa9..a2cc988
@@ -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
+}
index af81258..fc1ec4c 100755 (executable)
@@ -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());
 }