Add Unittest CancelObserves in ConsumerSimulator.
authorjaesick.shin <jaesick.shin@samsung.com>
Mon, 1 Aug 2016 03:31:20 +0000 (12:31 +0900)
committerMadan Lanka <lanka.madan@samsung.com>
Mon, 8 Aug 2016 08:27:26 +0000 (08:27 +0000)
Add test case about calling "Cancelobserve" at consumer side.

Change-Id: I3685d64894d490009456eadd22acf94a6fe4f9d7
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/9879
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/notification/unittest/NSConsumerSimulator.h
service/notification/unittest/NSProviderTest.cpp

index d12e30e..64522e2 100644 (file)
@@ -34,6 +34,7 @@ private:
     std::function<void(const int&, const int&)> m_syncFunc;
 
     std::shared_ptr<OC::OCResource> m_syncResource;
+    std::shared_ptr<OC::OCResource> m_msgResource;
 
 public:
     NSConsumerSimulator()
@@ -71,6 +72,14 @@ public:
         m_syncResource->post(rep, OC::QueryParamsMap(), &onPost, OC::QualityOfService::LowQos);
     }
 
+    bool cancelObserves()
+    {
+        if(!msgResourceCancelObserve(OC::QualityOfService::HighQos) &&
+                !syncResourceCancelObserve(OC::QualityOfService::HighQos))
+            return true;
+        return false;
+    }
+
     void setCallback(std::function<void(const int&, const std::string&,
             const std::string&, const std::string&)> messageFunc,
             const std::function<void(const int&, const int&)> & syncFunc)
@@ -115,16 +124,15 @@ private:
             std::cout << "resourc : getResourceInterfaces " << resource->getResourceInterfaces()[0] << std::endl;
             std::cout << "resourc : getResourceTypes " << resource->getResourceTypes()[0] << std::endl;
 
-
             std::vector<std::string> rts{"oic.r.notification"};
 
-            std::shared_ptr<OC::OCResource> msgResource
+            m_msgResource
                 = OC::OCPlatform::constructResourceObject(
                         std::string(resource->host()), std::string(resource->uri() + "/message"),
                         OCConnectivityType(resource->connectivityType()), true, rts,
                         std::vector<std::string>(resource->getResourceInterfaces()));
 
-            msgResource->observe(OC::ObserveType::Observe, map,
+            m_msgResource->observe(OC::ObserveType::Observe, map,
                             std::bind(&NSConsumerSimulator::onObserve, this,
                                     std::placeholders::_1, std::placeholders::_2,
                                     std::placeholders::_3, std::placeholders::_4, resource),
@@ -170,6 +178,16 @@ private:
             m_syncFunc(int(rep.getValue<int>("STATE")), int(rep.getValue<int>("ID")));
         }
     }
+
+    OCStackResult msgResourceCancelObserve(OC::QualityOfService qos)
+    {
+        return m_msgResource->cancelObserve(qos);
+    }
+
+    OCStackResult syncResourceCancelObserve(OC::QualityOfService qos)
+    {
+        return m_syncResource->cancelObserve(qos);
+    }
 };
 
 
index 2875507..1b1f345 100644 (file)
@@ -312,3 +312,13 @@ TEST_F(NotificationProviderTest, ExpectCallbackSyncOnReadFromConsumer)
     std::unique_lock< std::mutex > lock{ mutexForCondition };
     responseCon.wait_for(lock, std::chrono::milliseconds(5000));
 }
+
+TEST_F(NotificationProviderTest, CancelObserves)
+{
+    bool ret = g_consumerSimul.cancelObserves();
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, std::chrono::milliseconds(5000));
+
+    EXPECT_EQ(ret, true);
+}