From 67fbc993a710274790d91db2a447b0fb9537389a Mon Sep 17 00:00:00 2001 From: "jaesick.shin" Date: Mon, 1 Aug 2016 12:31:20 +0900 Subject: [PATCH] Add Unittest CancelObserves in ConsumerSimulator. Add test case about calling "Cancelobserve" at consumer side. Change-Id: I3685d64894d490009456eadd22acf94a6fe4f9d7 Signed-off-by: jaesick.shin Reviewed-on: https://gerrit.iotivity.org/gerrit/9879 Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka --- .../notification/unittest/NSConsumerSimulator.h | 24 +++++++++++++++++++--- service/notification/unittest/NSProviderTest.cpp | 10 +++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/service/notification/unittest/NSConsumerSimulator.h b/service/notification/unittest/NSConsumerSimulator.h index d12e30e..64522e2 100644 --- a/service/notification/unittest/NSConsumerSimulator.h +++ b/service/notification/unittest/NSConsumerSimulator.h @@ -34,6 +34,7 @@ private: std::function m_syncFunc; std::shared_ptr m_syncResource; + std::shared_ptr 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 messageFunc, const std::function & 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 rts{"oic.r.notification"}; - std::shared_ptr msgResource + m_msgResource = OC::OCPlatform::constructResourceObject( std::string(resource->host()), std::string(resource->uri() + "/message"), OCConnectivityType(resource->connectivityType()), true, rts, std::vector(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("STATE")), int(rep.getValue("ID"))); } } + + OCStackResult msgResourceCancelObserve(OC::QualityOfService qos) + { + return m_msgResource->cancelObserve(qos); + } + + OCStackResult syncResourceCancelObserve(OC::QualityOfService qos) + { + return m_syncResource->cancelObserve(qos); + } }; diff --git a/service/notification/unittest/NSProviderTest.cpp b/service/notification/unittest/NSProviderTest.cpp index 2875507..1b1f345 100644 --- a/service/notification/unittest/NSProviderTest.cpp +++ b/service/notification/unittest/NSProviderTest.cpp @@ -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); +} -- 2.7.4