replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / resource-encapsulation / src / resourceBroker / unittest / ResourcePresenceUnitTest.cpp
index 19e6c79..0199887 100644 (file)
@@ -1,7 +1,26 @@
-
+//******************************************************************
+//
+// Copyright 2015 Samsung Electronics All Rights Reserved.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 #include <iostream>
 #include <vector>
 #include <unistd.h>
+#include <memory>
 
 #include "gtest/gtest.h"
 #include "HippoMocks/hippomocks.h"
@@ -10,6 +29,7 @@
 #include "OCPlatform.h"
 
 #include "PrimitiveResource.h"
+#include "BrokerTypes.h"
 #include "ResponseStatement.h"
 #include "RCSResourceAttributes.h"
 #include "ResourcePresence.h"
@@ -28,26 +48,33 @@ public:
 
     typedef std::function<void(const HeaderOptions&, const ResponseStatement&, int)> GetCallback;
 
-    ResourcePresence * instance;
+    std::shared_ptr<ResourcePresence> instance;
     PrimitiveResource::Ptr pResource;
     BrokerCB cb;
     BrokerID id;
 
 protected:
 
-    void SetUp() 
+    void SetUp()
     {
         TestWithMock::SetUp();
-
-        instance = (ResourcePresence*)new ResourcePresence();
-        pResource = PrimitiveResource::Ptr(mocks.Mock< PrimitiveResource >(), [](PrimitiveResource*){});
-        cb = ([](BROKER_STATE)->OCStackResult{return OC_STACK_OK;});
+        instance.reset(new ResourcePresence());
+        pResource = PrimitiveResource::Ptr(mocks.Mock< PrimitiveResource >(),
+                                           [](PrimitiveResource*)
+                                           {
+
+                                           });
+        cb = ([](BROKER_STATE)->OCStackResult
+                {
+                    return OC_STACK_OK;
+                });
         id = 0;
     }
 
-    void TearDown() 
+    void TearDown()
     {
         TestWithMock::TearDown();
+        instance.reset();
         pResource.reset();
         id = 0;
         cb = nullptr;
@@ -55,28 +82,37 @@ protected:
 
     void MockingFunc()
     {
-        mocks.OnCall(pResource.get(), PrimitiveResource::requestGet).Do([](GetCallback cb){});
+        mocks.OnCall(pResource.get(), PrimitiveResource::requestGet).Do(
+                [](GetCallback)
+                {
+
+                });
         mocks.OnCall(pResource.get(), PrimitiveResource::getHost).Return(std::string());
         mocks.OnCallFuncOverload(static_cast< subscribePresenceSig1 >(OC::OCPlatform::subscribePresence)).Return(OC_STACK_OK);
     }
 
 };
+TEST_F(ResourcePresenceTest,timeoutCB_TimeOverWhenIsRequestGet)
+{
+    MockingFunc();
+    instance->initializeResourcePresence(pResource);
+    std::cout<<"wait while done timeout requestGet\n";
+    BROKER_STATE state = BROKER_STATE::NONE;
+    state = instance->getResourceState();
+    sleep((BROKER_DEVICE_PRESENCE_TIMEROUT/1000)+1);
+    ASSERT_EQ(state,instance->getResourceState());
+}
 
 TEST_F(ResourcePresenceTest,initializeResourcePresence_NormalhandlingIfNormalResource)
 {
-
     MockingFunc();
-
     instance->initializeResourcePresence(pResource);
     ASSERT_NE(nullptr,instance->getPrimitiveResource());
-
 }
 
 TEST_F(ResourcePresenceTest,addBrokerRequester_ReturnNormalValueIfNormalParams)
 {
-
     MockingFunc();
-
     instance->initializeResourcePresence(pResource);
     id = 1;
     instance->addBrokerRequester(id,cb);
@@ -118,7 +154,6 @@ TEST_F(ResourcePresenceTest,removeAllBrokerRequester_NormalHandling)
 
 TEST_F(ResourcePresenceTest,removeAllBrokerRequester_ErrorHandlingIfListNull)
 {
-
     MockingFunc();
 
     instance->initializeResourcePresence(pResource);
@@ -150,7 +185,8 @@ TEST_F(ResourcePresenceTest,changePresenceMode_NormalHandlingIfNewModeDifferent)
 
 TEST_F(ResourcePresenceTest,getResourceState_NormalHandling)
 {
-
+    MockingFunc();
+    instance->initializeResourcePresence(pResource);
     ASSERT_EQ(BROKER_STATE::REQUESTED,instance->getResourceState());
 
 }
@@ -176,47 +212,54 @@ TEST_F(ResourcePresenceTest,getPrimitiveResource_NormalHandling)
 
 }
 
+TEST_F(ResourcePresenceTest,isEmptyRequester_NormalHandling)
+{
+
+    MockingFunc();
+
+    instance->initializeResourcePresence(pResource);
+    id = 1;
+    instance->addBrokerRequester(id,cb);
+    instance->removeAllBrokerRequester();
+    ASSERT_TRUE(instance->isEmptyRequester());
+
+}
+
 TEST_F(ResourcePresenceTest,getCB_NormalHandlingIfMessageOC_STACK_OK)
 {
 
     mocks.ExpectCall(pResource.get(), PrimitiveResource::requestGet).Do(
-                [](GetCallback callback){
+                [](GetCallback callback)
+                {
+                    OIC::Service::HeaderOptions op;
+                    RCSResourceAttributes attr;
+                    OIC::Service::ResponseStatement res(attr);
+
+                    callback(op,res,OC_STACK_OK);
 
-        OIC::Service::HeaderOptions op;
-        RCSResourceAttributes attr;
-        OIC::Service::ResponseStatement res(attr);
-        callback(op,res,OC_STACK_OK);
+                });
 
-    });
     mocks.OnCall(pResource.get(), PrimitiveResource::requestGet).Do(
-                                [](GetCallback callback){
-        std::cout <<"End call requestGetFunc()\n";
-                    });
-    mocks.ExpectCall(pResource.get(), PrimitiveResource::getHost).Return("address1");
-    mocks.ExpectCall(pResource.get(), PrimitiveResource::getHost).Return("address2");
+                [](GetCallback)
+                {
+                    std::cout <<"End call requestGetFunc()\n";
+                });
+    mocks.OnCall(pResource.get(), PrimitiveResource::getHost).Return("address1");
+
     mocks.OnCallFuncOverload(static_cast< subscribePresenceSig1 >(OC::OCPlatform::subscribePresence)).Do(
             [](OC::OCPlatform::OCPresenceHandle&,
-                    const std::string&, OCConnectivityType, SubscribeCallback callback)->OCStackResult{
-
-        callback(OC_STACK_OK,0,std::string());
-        return OC_STACK_OK;
+                    const std::string&, OCConnectivityType, SubscribeCallback callback)->OCStackResult
+                {
+                    callback(OC_STACK_OK,0,std::string());
+                    return OC_STACK_OK;
 
-    }).Return(OC_STACK_OK);
+                }
+    ).Return(OC_STACK_OK);
 
     instance->initializeResourcePresence(pResource);
     sleep(3);
 
 }
 
-TEST_F(ResourcePresenceTest,isEmptyRequester_NormalHandling)
-{
 
-    MockingFunc();
-
-    instance->initializeResourcePresence(pResource);
-    id = 1;
-    instance->addBrokerRequester(id,cb);
-    instance->removeAllBrokerRequester();
-    ASSERT_TRUE(instance->isEmptyRequester());
 
-}