From c04ceb4bcf6c51000283f51087f52686f108f389 Mon Sep 17 00:00:00 2001 From: "doil.kwon" Date: Mon, 27 Jul 2015 19:46:27 +0900 Subject: [PATCH] Modify ResourcePresenceUnitTest Code - There is Segmentation fault because it is used 'weak pointer' without non-pre used 'shared pointer'. so ResourcePresence instance's type is changed 'low pointer' to 'shared pointer' - ResourcePresence's logic was chaging. so UnitTest's logic was changing(used mocking api's order and number) Change-Id: Ic7ab6ae24b4b7bcb671d11728d16d0031842e002 Signed-off-by: doil.kwon Reviewed-on: https://gerrit.iotivity.org/gerrit/1935 Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka --- .../unittest/ResourcePresenceUnitTest.cpp | 45 +++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/service/resource-encapsulation/src/resourceBroker/unittest/ResourcePresenceUnitTest.cpp b/service/resource-encapsulation/src/resourceBroker/unittest/ResourcePresenceUnitTest.cpp index 19e6c79..ed4c1f0 100644 --- a/service/resource-encapsulation/src/resourceBroker/unittest/ResourcePresenceUnitTest.cpp +++ b/service/resource-encapsulation/src/resourceBroker/unittest/ResourcePresenceUnitTest.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include "gtest/gtest.h" #include "HippoMocks/hippomocks.h" @@ -28,7 +29,7 @@ public: typedef std::function GetCallback; - ResourcePresence * instance; + std::shared_ptr instance; PrimitiveResource::Ptr pResource; BrokerCB cb; BrokerID id; @@ -38,8 +39,7 @@ protected: void SetUp() { TestWithMock::SetUp(); - - instance = (ResourcePresence*)new ResourcePresence(); + instance.reset(new ResourcePresence()); pResource = PrimitiveResource::Ptr(mocks.Mock< PrimitiveResource >(), [](PrimitiveResource*){}); cb = ([](BROKER_STATE)->OCStackResult{return OC_STACK_OK;}); id = 0; @@ -48,6 +48,7 @@ protected: void TearDown() { TestWithMock::TearDown(); + instance.reset(); pResource.reset(); id = 0; cb = nullptr; @@ -64,19 +65,14 @@ protected: TEST_F(ResourcePresenceTest,initializeResourcePresence_NormalhandlingIfNormalResource) { - MockingFunc(); - instance->initializeResourcePresence(pResource); ASSERT_NE(nullptr,instance->getPrimitiveResource()); - } TEST_F(ResourcePresenceTest,addBrokerRequester_ReturnNormalValueIfNormalParams) { - MockingFunc(); - instance->initializeResourcePresence(pResource); id = 1; instance->addBrokerRequester(id,cb); @@ -118,7 +114,6 @@ TEST_F(ResourcePresenceTest,removeAllBrokerRequester_NormalHandling) TEST_F(ResourcePresenceTest,removeAllBrokerRequester_ErrorHandlingIfListNull) { - MockingFunc(); instance->initializeResourcePresence(pResource); @@ -150,7 +145,8 @@ TEST_F(ResourcePresenceTest,changePresenceMode_NormalHandlingIfNewModeDifferent) TEST_F(ResourcePresenceTest,getResourceState_NormalHandling) { - + MockingFunc(); + instance->initializeResourcePresence(pResource); ASSERT_EQ(BROKER_STATE::REQUESTED,instance->getResourceState()); } @@ -176,6 +172,19 @@ TEST_F(ResourcePresenceTest,getPrimitiveResource_NormalHandling) } +TEST_F(ResourcePresenceTest,isEmptyRequester_NormalHandling) +{ + + MockingFunc(); + + instance->initializeResourcePresence(pResource); + id = 1; + instance->addBrokerRequester(id,cb); + instance->removeAllBrokerRequester(); + ASSERT_TRUE(instance->isEmptyRequester()); + +} + TEST_F(ResourcePresenceTest,getCB_NormalHandlingIfMessageOC_STACK_OK) { @@ -185,15 +194,17 @@ TEST_F(ResourcePresenceTest,getCB_NormalHandlingIfMessageOC_STACK_OK) OIC::Service::HeaderOptions op; RCSResourceAttributes attr; OIC::Service::ResponseStatement res(attr); + callback(op,res,OC_STACK_OK); }); + mocks.OnCall(pResource.get(), PrimitiveResource::requestGet).Do( [](GetCallback callback){ std::cout <<"End call requestGetFunc()\n"; }); - mocks.ExpectCall(pResource.get(), PrimitiveResource::getHost).Return("address1"); - mocks.ExpectCall(pResource.get(), PrimitiveResource::getHost).Return("address2"); + mocks.OnCall(pResource.get(), PrimitiveResource::getHost).Return("address1"); + mocks.OnCallFuncOverload(static_cast< subscribePresenceSig1 >(OC::OCPlatform::subscribePresence)).Do( [](OC::OCPlatform::OCPresenceHandle&, const std::string&, OCConnectivityType, SubscribeCallback callback)->OCStackResult{ @@ -208,15 +219,5 @@ TEST_F(ResourcePresenceTest,getCB_NormalHandlingIfMessageOC_STACK_OK) } -TEST_F(ResourcePresenceTest,isEmptyRequester_NormalHandling) -{ - - MockingFunc(); - instance->initializeResourcePresence(pResource); - id = 1; - instance->addBrokerRequester(id,cb); - instance->removeAllBrokerRequester(); - ASSERT_TRUE(instance->isEmptyRequester()); -} -- 2.7.4