Add unittests to server builder
authorcoderhyme <jhyo.kim@samsung.com>
Tue, 16 Jun 2015 08:23:14 +0000 (17:23 +0900)
committerUze Choi <uzchoi@samsung.com>
Wed, 17 Jun 2015 08:59:28 +0000 (08:59 +0000)
Change-Id: I09a933a7bb58b2ae92a372b14d2957a94223968b
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1314
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/basis/serverBuilder/unittests/PrimitiveServerResourceTest.cpp
service/basis/serverBuilder/unittests/RequestHandlerTest.cpp

index 552c928..7402d64 100644 (file)
@@ -40,6 +40,7 @@ typedef OCStackResult (*registerResourceSig)(OCResourceHandle&,
                        EntityHandler,
                        uint8_t );
 
+static constexpr char RESOURCE_URI[] = "a/test";
 static constexpr char KEY[] = "key";
 
 TEST(ServerResourceBuilderTest, ThrowIfUriIsInvalid)
@@ -54,9 +55,31 @@ TEST(ServerResourceBuilderTest, RegisterResourceWhenCallCreate)
     mocks.ExpectCallFuncOverload(
             static_cast<registerResourceSig>(OCPlatform::registerResource)).Return(OC_STACK_OK);
 
-    PrimitiveServerResource::Builder("a/test", "", "").create();
+    PrimitiveServerResource::Builder(RESOURCE_URI, "", "").create();
 }
 
+TEST(ServerResourceBuilderTest, ResourceServerHasPropertiesSetByBuilder)
+{
+    auto serverResource = PrimitiveServerResource::Builder(RESOURCE_URI, "", "").
+            setDiscoverable(false).setObservable(true).create();
+
+    EXPECT_FALSE(serverResource->isDiscoverable());
+    EXPECT_TRUE(serverResource->isObservable());
+}
+
+TEST(ServerResourceBuilderTest, ResourceServerHasAttrsSetByBuilder)
+{
+    ResourceAttributes attrs;
+    attrs[KEY] = 100;
+
+    auto serverResource = PrimitiveServerResource::Builder(RESOURCE_URI, "", "").
+            setAttributes(attrs).create();
+
+    PrimitiveServerResource::LockGuard lock{ serverResource };
+    EXPECT_EQ(attrs, serverResource->getAttributes());
+}
+
+
 class ServerResourceTest: public Test
 {
 public:
@@ -67,7 +90,7 @@ protected:
     void SetUp() override
     {
         initMocks();
-        server = PrimitiveServerResource::Builder("a/test", "", "").create();
+        server = PrimitiveServerResource::Builder(RESOURCE_URI, "", "").create();
     }
 
     virtual void initMocks()
@@ -197,7 +220,7 @@ TEST_F(ServerResourceHandlingRequestTest, SendResponseWithSameHandlesPassedByReq
     ASSERT_EQ(OC_EH_OK, handler(createRequest()));
 }
 
-TEST_F(ServerResourceHandlingRequestTest, SendResponseWithPrimitiveResponseParams)
+TEST_F(ServerResourceHandlingRequestTest, SendResponseWithPrimitiveResponseResults)
 {
     constexpr int errorCode{ 1999 };
     constexpr OCEntityHandlerResult result{ OC_EH_SLOW };
@@ -220,6 +243,33 @@ TEST_F(ServerResourceHandlingRequestTest, SendResponseWithPrimitiveResponseParam
     ASSERT_EQ(OC_EH_OK, handler(createRequest()));
 }
 
+TEST_F(ServerResourceHandlingRequestTest, SendSetResponseWithCustomAttrsAndResults)
+{
+    constexpr int errorCode{ 1999 };
+    constexpr OCEntityHandlerResult result{ OC_EH_SLOW };
+    constexpr char value[]{ "value" };
+
+    server->setSetRequestHandler(
+            [](const PrimitiveRequest&, ResourceAttributes&) -> PrimitiveSetResponse
+            {
+                ResourceAttributes attrs;
+                attrs[KEY] = value;
+                return PrimitiveSetResponse::create(attrs, result, errorCode);
+            }
+    );
+
+    mocks.ExpectCallFunc(OCPlatform::sendResponse).Match(
+            [](const shared_ptr<OCResourceResponse> response)
+            {
+                return value == response->getResourceRepresentation()[KEY].getValue<std::string>()
+                        && response->getErrorCode() == errorCode
+                        && response->getResponseResult() == result;
+            }
+    ).Return(OC_STACK_OK);
+
+    ASSERT_EQ(OC_EH_OK, handler(createRequest(OC_REST_PUT)));
+}
+
 
 
 class ServerResourceSynchronizationTest: public ServerResourceHandlingRequestTest
index fb01ded..bf515b7 100644 (file)
@@ -68,6 +68,20 @@ TEST_F(SimpleRequestHandlerTest, ResponseHasSameAttrsWithServerAttrs)
     ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[EXISTING].getValue<int>());
 }
 
+TEST_F(SimpleRequestHandlerTest, ResponseHasAttrsSetByCustomAttrRequestHandler)
+{
+    constexpr char key[] { "key" };
+    constexpr int newValue{ 100 };
+
+    ResourceAttributes attrs;
+    attrs[key] = newValue;
+    CustomAttrRequestHandler handler{ attrs };
+
+    auto response = handler.buildResponse(*server, requestAttrs);
+
+    ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[key].getValue<int>());
+}
+
 
 
 class SetRequestProxyHandlerTest: public Test
@@ -100,7 +114,7 @@ TEST_F(SetRequestProxyHandlerTest, NothingHappenedWithEmptyAttrs)
 
 TEST_F(SetRequestProxyHandlerTest, ServerAttributesChangedIfOnlySameKeyExists)
 {
-    int newValue{ 100 };
+    constexpr int newValue{ 100 };
 
     requestAttrs[EXISTING] = newValue;