X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fresource-encapsulation%2Funittests%2FResourceClientTest.cpp;h=171531b06301bf377a28de1ab8ea3f613117c111;hb=390866079e285d2c74918432c0d597d5da52f8a0;hp=a0e5274520b2047a0a2286f32fcfda4f6e8804fa;hpb=3e9402ad71cb3e93266a77796f44d17bab9853fd;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/resource-encapsulation/unittests/ResourceClientTest.cpp b/service/resource-encapsulation/unittests/ResourceClientTest.cpp index a0e5274..171531b 100644 --- a/service/resource-encapsulation/unittests/ResourceClientTest.cpp +++ b/service/resource-encapsulation/unittests/ResourceClientTest.cpp @@ -24,6 +24,7 @@ #include "RCSDiscoveryManager.h" #include "RCSResourceObject.h" #include "RCSAddress.h" +#include "RCSRequest.h" #include #include @@ -94,12 +95,12 @@ private: { for (int i=0; i<10 && !object; ++i) { - const std::string uri = "/oic/res"; auto discoveryTask = RCSDiscoveryManager::getInstance()->discoverResourceByType( - RCSAddress::multicast(), uri, RESOURCETYPE, + RCSAddress::multicast(), RESOURCETYPE, std::bind(&RemoteResourceObjectTest::resourceDiscovered, this, std::placeholders::_1)); Wait(1000); + discoveryTask->cancel(); } } @@ -163,6 +164,44 @@ TEST_F(RemoteResourceObjectTest, SetRemoteAttributesSetsAttributesOfServer) ASSERT_EQ(newValue, server->getAttributeValue(ATTR_KEY)); } +TEST_F(RemoteResourceObjectTest, QueryParamsForGetWillBePassedToBase) +{ + class CustomHandler + { + public: + virtual RCSGetResponse handle(const RCSRequest&, RCSResourceAttributes&) = 0; + virtual ~CustomHandler() {} + }; + + constexpr char PARAM_KEY[] { "aKey" }; + constexpr char VALUE[] { "value" }; + + object->get(RCSQueryParams().setResourceInterface(RESOURCEINTERFACE).setResourceType(RESOURCETYPE). + put(PARAM_KEY, VALUE), + [](const HeaderOpts&, const RCSRepresentation&, int){}); + + auto mockHandler = mocks.Mock< CustomHandler >(); + + mocks.ExpectCall(mockHandler, CustomHandler::handle). + Match([](const RCSRequest& request, RCSResourceAttributes&) + { + return request.getInterface() == RESOURCEINTERFACE && + request.getQueryParams().at(PARAM_KEY) == VALUE; + } + ). + Do([this](const RCSRequest&, RCSResourceAttributes&) + { + Proceed(); + return RCSGetResponse::defaultAction(); + } + ); + + server->setGetRequestHandler(std::bind(&CustomHandler::handle, mockHandler, + std::placeholders::_1, std::placeholders::_2)); + + Wait(); +} + TEST_F(RemoteResourceObjectTest, MonitoringIsNotStartedByDefault) { ASSERT_FALSE(object->isMonitoring());