+ ASSERT_EQ(newValue, server->getAttributeValue(ATTR_KEY).get<int>());
+}
+
+TEST_F(RemoteResourceObjectTest, SetRemoteRepresentationDoesNotAllowEmptyFunction)
+{
+ RCSQueryParams queryParams;
+ RCSRepresentation rcsRep;
+ ASSERT_THROW(object->set(queryParams, rcsRep, {}), RCSInvalidParameterException);
+}
+
+TEST_F(RemoteResourceObjectTest, SetRemoteRepresentationSetsRepresentationOfServer)
+{
+ RCSRepresentation rcsRep;
+ RCSQueryParams queryParams;
+ constexpr int newValue = ATTR_VALUE + 1;
+ RCSResourceAttributes newAttrs;
+ newAttrs[ATTR_KEY] = newValue;
+
+ rcsRep.setAttributes(newAttrs);
+
+ mocks.ExpectCallFunc(setRemoteRepresentationCallback).
+ Do([this](const HeaderOpts&, const RCSRepresentation&, int){ Proceed(); });
+
+ object->set(queryParams, rcsRep, setRemoteRepresentationCallback);
+ Wait();
+
+ ASSERT_EQ(newValue, server->getAttributeValue(ATTR_KEY).get<int>());
+}
+
+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();