X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fscene-manager%2Funittests%2FRemoteSceneCollectionTest.cpp;h=a82a86e5cbbd491d01cafd082c8f8a96c5da81d2;hb=a47611a2b7a66ee6bbb10e78a87f3f0cc3943084;hp=bcc0888f5a9fa5f0814c871e3e7686c0fb1b2bc4;hpb=ea65e0ced7092a716f9b4d946d08dd2d6f2b662b;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/scene-manager/unittests/RemoteSceneCollectionTest.cpp b/service/scene-manager/unittests/RemoteSceneCollectionTest.cpp old mode 100644 new mode 100755 index bcc0888..a82a86e --- a/service/scene-manager/unittests/RemoteSceneCollectionTest.cpp +++ b/service/scene-manager/unittests/RemoteSceneCollectionTest.cpp @@ -29,6 +29,8 @@ #include "RCSResourceObject.h" #include "RCSRemoteResourceObject.h" #include "OCPlatform.h" +#include "RCSDiscoveryManager.h" +#include "RCSAddress.h" using namespace std; using namespace OIC::Service; @@ -36,6 +38,25 @@ using namespace OC; constexpr int DEFAULT_WAITTIME = 2000; +SceneList* g_sceneList = SceneList::getInstance(); +RCSRemoteResourceObject::Ptr pListResource = nullptr; +RemoteSceneList::Ptr pSceneList = nullptr; +RemoteSceneCollection::Ptr pSceneCollection = nullptr; +RemoteScene::Ptr pScene = nullptr; + +void discoverSceneListServer() +{ + if(pListResource == nullptr) + { + 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); + } +} + class RemoteSceneCollectionTest : public TestWithMock { protected: @@ -43,24 +64,15 @@ protected: { TestWithMock::SetUp(); - SceneList::getInstance()->getName(); - createListServer(); - - RemoteSceneList::createInstance(pListResource, std::bind( - &RemoteSceneCollectionTest::onRemoteSceneListCreated, this, - placeholders::_1, placeholders::_2)); + g_sceneList->getName(); + discoverSceneListServer(); - waitForCallback(); - } - - 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); + if(pSceneList == nullptr){ + RemoteSceneList::createInstance(pListResource, std::bind( + &RemoteSceneCollectionTest::onRemoteSceneListCreated, this, + placeholders::_1, placeholders::_2)); + waitForCallback(); + } } void waitForCallback(int waitingTime = DEFAULT_WAITTIME) @@ -70,9 +82,6 @@ protected: } public: - RCSRemoteResourceObject::Ptr pListResource; - RemoteSceneList::Ptr pSceneList; - RemoteSceneCollection::Ptr pSceneCollection; std::condition_variable cond; std::mutex mutex; @@ -88,8 +97,9 @@ public: cond.notify_all(); } - void onRemoteSceneCreated(RemoteScene::Ptr, int) + void onRemoteSceneCreated(RemoteScene::Ptr remoteScene, int) { + pScene = remoteScene; cond.notify_all(); } @@ -101,17 +111,21 @@ public: TEST_F(RemoteSceneCollectionTest, addNewRemoteSceneCollection) { - pSceneList->addNewSceneCollection(std::bind( - &RemoteSceneCollectionTest::onRemoteSceneCollectionCreated, this, - placeholders::_1, placeholders::_2)); - - waitForCallback(); - - pSceneCollection->addNewScene("Default", std::bind( - &RemoteSceneCollectionTest::onRemoteSceneCreated, this, - placeholders::_1, placeholders::_2)); + if(pSceneCollection == nullptr) + { + pSceneList->addNewSceneCollection(std::bind( + &RemoteSceneCollectionTest::onRemoteSceneCollectionCreated, this, + placeholders::_1, placeholders::_2)); + waitForCallback(); + } - waitForCallback(); + if(pScene == nullptr) + { + pSceneCollection->addNewScene("Default", std::bind( + &RemoteSceneCollectionTest::onRemoteSceneCreated, this, + placeholders::_1, placeholders::_2)); + waitForCallback(); + } EXPECT_NE(nullptr, pSceneCollection); } @@ -144,17 +158,21 @@ TEST_F(RemoteSceneCollectionTest, getRemoteSceneCollectionList) TEST_F(RemoteSceneCollectionTest, setAndGetSceneCollectionName) { - pSceneList->addNewSceneCollection(std::bind( - &RemoteSceneCollectionTest::onRemoteSceneCollectionCreated, this, - placeholders::_1, placeholders::_2)); - - waitForCallback(); - - pSceneCollection->addNewScene("Default", std::bind( - &RemoteSceneCollectionTest::onRemoteSceneCreated, this, - placeholders::_1, placeholders::_2)); + if(pSceneCollection == nullptr) + { + pSceneList->addNewSceneCollection(std::bind( + &RemoteSceneCollectionTest::onRemoteSceneCollectionCreated, this, + placeholders::_1, placeholders::_2)); + waitForCallback(); + } - waitForCallback(); + if(pScene == nullptr) + { + pSceneCollection->addNewScene("Default", std::bind( + &RemoteSceneCollectionTest::onRemoteSceneCreated, this, + placeholders::_1, placeholders::_2)); + waitForCallback(); + } pSceneCollection->setName("Kitchen", std::bind( &RemoteSceneCollectionTest::onSetName, this, placeholders::_1));