Imported Upstream version 1.1.0
[platform/upstream/iotivity.git] / service / resource-encapsulation / src / serverBuilder / unittests / RequestHandlerTest.cpp
index 7eba605..bc3b53e 100644 (file)
 //
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
-#include <UnitTestHelper.h>
+#include "UnitTestHelper.h"
 
-#include <RequestHandler.h>
-#include <RCSResourceObject.h>
+#include "RequestHandler.h"
+#include "RCSResourceObject.h"
+#include "ResourceAttributesConverter.h"
 
-#include <OCPlatform.h>
+#include "OCPlatform.h"
 
 using namespace std;
 
@@ -37,73 +38,51 @@ constexpr int NEW_VALUE{ 1 };
 typedef OCStackResult (*RegisterResource)(OCResourceHandle&, std::string&,
         const std::string&, const std::string&, OC::EntityHandler, uint8_t);
 
-class RequestHandlerTest: public TestWithMock
+TEST(RequestHandlerTest, DefaultHasNoCustomRepresntation)
 {
-public:
-    RCSResourceObject::Ptr server;
-
-protected:
-    void SetUp()
-    {
-        TestWithMock::SetUp();
-
-        mocks.OnCallFuncOverload(static_cast<RegisterResource>(OC::OCPlatform::registerResource))
-                .Return(OC_STACK_OK);
-
-        mocks.OnCallFunc(OC::OCPlatform::unregisterResource).Return(OC_STACK_OK);
-
-        server = RCSResourceObject::Builder("a/test", "resourcetype", "").build();
-
-        server->setAutoNotifyPolicy(RCSResourceObject::AutoNotifyPolicy::NEVER);
-        server->setAttribute(EXISTING, ORIGIN_VALUE);
-    }
-};
-
-TEST_F(RequestHandlerTest, ResponseHasSameValuesPassedToHandlerConstructor)
-{
-    RequestHandler handler{ -1000 };
-
-    auto response = handler.buildResponse(*server);
-
-    ASSERT_EQ(-1000, response->getErrorCode());
+    ASSERT_FALSE(RequestHandler().hasCustomRepresentation());
 }
 
-TEST_F(RequestHandlerTest, ResponseHasSameAttrsWithServerAttrs)
+TEST(RequestHandlerTest, HasCustomRepresentationIfConstructedWithAttributes)
 {
-    RequestHandler handler{};
-
-    auto response = handler.buildResponse(*server);
-
-    ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[EXISTING].getValue<int>());
+    ASSERT_TRUE(RequestHandler(RCSResourceAttributes{ }).hasCustomRepresentation());
 }
 
-TEST_F(RequestHandlerTest, ResponseHasAttrsSetByCustomAttrRequestHandler)
+TEST(RequestHandlerTest, CustomRepresentationContainsSameAttributesPassedToConstructor)
 {
-    constexpr char key[] { "key" };
-    constexpr int newValue{ 100 };
-
     RCSResourceAttributes attrs;
-    attrs[key] = newValue;
-    RequestHandler handler{ attrs };
+    attrs[EXISTING] = ORIGIN_VALUE;
 
-    auto response = handler.buildResponse(*server);
+    RequestHandler handler(attrs);
 
-    ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[key].getValue<int>());
+    auto converted = ResourceAttributesConverter::fromOCRepresentation(handler.getRepresentation());
+    ASSERT_EQ(attrs, converted);
 }
 
 
-
-class SetRequestHandlerAcceptanceTest: public RequestHandlerTest
+class SetRequestHandlerAcceptanceTest: public TestWithMock
 {
 public:
-    SetRequestHandler::Ptr setRequestHandler;
+    RCSResourceObject::Ptr server;
+
+    std::shared_ptr< SetRequestHandler > setRequestHandler;
 
     RCSResourceAttributes requestAttrs;
 
 protected:
     void SetUp()
     {
-        RequestHandlerTest::SetUp();
+        TestWithMock::SetUp();
+
+        mocks.OnCallFuncOverload(static_cast<RegisterResource>(OC::OCPlatform::registerResource))
+                .Return(OC_STACK_OK);
+
+        mocks.OnCallFunc(OC::OCPlatform::unregisterResource).Return(OC_STACK_OK);
+
+        server = RCSResourceObject::Builder("a/test", "resourcetype", "").build();
+
+        server->setAutoNotifyPolicy(RCSResourceObject::AutoNotifyPolicy::NEVER);
+        server->setAttribute(EXISTING, ORIGIN_VALUE);
 
         setRequestHandler = make_shared< SetRequestHandler >();