From f428e58d5376eb3f06fcb5fc9c83232f2f5ca133 Mon Sep 17 00:00:00 2001 From: coderhyme Date: Tue, 16 Jun 2015 17:23:14 +0900 Subject: [PATCH] Add unittests to server builder Change-Id: I09a933a7bb58b2ae92a372b14d2957a94223968b Signed-off-by: coderhyme Reviewed-on: https://gerrit.iotivity.org/gerrit/1314 Reviewed-by: Uze Choi Tested-by: Uze Choi --- .../unittests/PrimitiveServerResourceTest.cpp | 56 ++++++++++++++++++++-- .../serverBuilder/unittests/RequestHandlerTest.cpp | 16 ++++++- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/service/basis/serverBuilder/unittests/PrimitiveServerResourceTest.cpp b/service/basis/serverBuilder/unittests/PrimitiveServerResourceTest.cpp index 552c928..7402d64 100644 --- a/service/basis/serverBuilder/unittests/PrimitiveServerResourceTest.cpp +++ b/service/basis/serverBuilder/unittests/PrimitiveServerResourceTest.cpp @@ -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(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 response) + { + return value == response->getResourceRepresentation()[KEY].getValue() + && response->getErrorCode() == errorCode + && response->getResponseResult() == result; + } + ).Return(OC_STACK_OK); + + ASSERT_EQ(OC_EH_OK, handler(createRequest(OC_REST_PUT))); +} + class ServerResourceSynchronizationTest: public ServerResourceHandlingRequestTest diff --git a/service/basis/serverBuilder/unittests/RequestHandlerTest.cpp b/service/basis/serverBuilder/unittests/RequestHandlerTest.cpp index fb01ded..bf515b7 100644 --- a/service/basis/serverBuilder/unittests/RequestHandlerTest.cpp +++ b/service/basis/serverBuilder/unittests/RequestHandlerTest.cpp @@ -68,6 +68,20 @@ TEST_F(SimpleRequestHandlerTest, ResponseHasSameAttrsWithServerAttrs) ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[EXISTING].getValue()); } +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()); +} + 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; -- 2.7.4