From d03ff7235b1bb10a0bbef8b23154d02a2c289c32 Mon Sep 17 00:00:00 2001 From: Rami Jung Date: Wed, 22 Jul 2015 20:00:53 +0900 Subject: [PATCH] adding UnitTest functions in Server Builder -addAttributeUpdatedListener() -removeAttributeUpdatedListener() Change-Id: I3bc137c02d4b6d386b406ee0879242ea961ff085 Signed-off-by: Rami Jung Reviewed-on: https://gerrit.iotivity.org/gerrit/1811 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../serverBuilder/unittests/ResourceObjectTest.cpp | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/service/resource-manipulation/src/serverBuilder/unittests/ResourceObjectTest.cpp b/service/resource-manipulation/src/serverBuilder/unittests/ResourceObjectTest.cpp index eaa327a..84b4034 100755 --- a/service/resource-manipulation/src/serverBuilder/unittests/ResourceObjectTest.cpp +++ b/service/resource-manipulation/src/serverBuilder/unittests/ResourceObjectTest.cpp @@ -558,3 +558,95 @@ TEST_F(ResourceObjectSynchronizationTest, MultipleAccessToServerResourceWithRequ ASSERT_EQ(expected, server->getAttribute(KEY)); } + + +class AttributeUpdatedListenerTest: public ResourceObjectHandlingRequestTest +{ +public: + typedef OCStackResult (*SendResponse)(std::shared_ptr); + +public: + OCRepresentation createOCRepresentation(void) + { + OCRepresentation ocRep; + + vector interface{"oic.if.baseline"}; + vector type{"core.light"}; + + ocRep.setUri(RESOURCE_URI); + ocRep.setResourceInterfaces(interface); + ocRep.setResourceTypes(type); + ocRep[KEY] = value; + + return ocRep; + } + + void initMocks() + { + ResourceObjectHandlingRequestTest::initMocks(); + mocks.OnCallFunc(OCPlatform::sendResponse).Return(OC_STACK_OK); + } +}; + +TEST_F(AttributeUpdatedListenerTest, AddListenerReturnsTrueIfListenerIsCalled) +{ + bool called=false; + + server->setAttribute(KEY, 0); + OCRepresentation ocRep = createOCRepresentation(); + + server->addAttributeUpdatedListener(KEY, + [&called](const OIC::Service::ResourceAttributes::Value&, + const OIC::Service::ResourceAttributes::Value& ) + { + called=true; + } ); + + handler(ResourceObjectHandlingRequestTest::createRequest(OC_REST_PUT, ocRep)); + + ASSERT_TRUE(called); +} + +TEST_F(AttributeUpdatedListenerTest, AddListenerisChangedAccordingToLastAddedFunction) +{ + int called=0, expected=100; + + server->setAttribute(KEY,0); + OCRepresentation ocRep = createOCRepresentation(); + + server->addAttributeUpdatedListener("key", + [&called](const OIC::Service::ResourceAttributes::Value&, + const OIC::Service::ResourceAttributes::Value&) + { + called=10; + } ); + + server->addAttributeUpdatedListener(KEY, + [&called](const OIC::Service::ResourceAttributes::Value&, + const OIC::Service::ResourceAttributes::Value&) + { + called=100; + } ); + + handler(ResourceObjectHandlingRequestTest::createRequest(OC_REST_PUT, ocRep)); + + ASSERT_EQ(expected, called); +} + +TEST_F(AttributeUpdatedListenerTest, RemoveListenerReturnsTrueIfListenerIsNotAdded) +{ + ASSERT_FALSE(server->removeAttributeUpdatedListener(KEY)); +} + +TEST_F(AttributeUpdatedListenerTest, RemoveListenerReturnsTrueIfListenerIsAdded) +{ + server->addAttributeUpdatedListener(KEY, + [](const OIC::Service::ResourceAttributes::Value&, + const OIC::Service::ResourceAttributes::Value&) + { + } ); + + ASSERT_TRUE(server->removeAttributeUpdatedListener(KEY)); +} + + -- 2.7.4