From 0cb60ae5f41b02028d9b87e4421444d3632c57e8 Mon Sep 17 00:00:00 2001 From: Senthil Kumar G S Date: Wed, 17 May 2017 20:25:33 +0530 Subject: [PATCH] Added unit test cases for missed out APIs of mediator in easy-setup. Unit test case for requestToConnect and provisionCloudProperties APIs. This improves code coverage as well. Change-Id: Ice5f616150269c9b375d47a7dd3eb23c0fec95a5 Signed-off-by: Senthil Kumar G S Reviewed-on: https://gerrit.iotivity.org/gerrit/19991 Reviewed-by: Phil Coval Tested-by: jenkins-iotivity Reviewed-by: Jihun Ha Reviewed-by: Uze Choi --- .../mediator/richsdk/unittests/ESMediatorTest.cpp | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/service/easy-setup/mediator/richsdk/unittests/ESMediatorTest.cpp b/service/easy-setup/mediator/richsdk/unittests/ESMediatorTest.cpp index 8b50705..6d13642 100755 --- a/service/easy-setup/mediator/richsdk/unittests/ESMediatorTest.cpp +++ b/service/easy-setup/mediator/richsdk/unittests/ESMediatorTest.cpp @@ -52,6 +52,7 @@ namespace std::mutex mutexForCondition; ESEnrolleeSimulator g_enrolleeSimul; + std::shared_ptr g_enrolleeResource; std::shared_ptr g_remoteEnrollee; } @@ -192,6 +193,7 @@ TEST_F(EasysetupMediatorTest, createremoteenrolleeFailedWithNotEasySetupResource TEST_F(EasysetupMediatorTest, createremoteenrolleeSucceedWithEasySetupResource) { discoverRemoteEnrollee(); + g_enrolleeResource = m_enrolleeResource; g_remoteEnrollee = EasySetup::getInstance()->createRemoteEnrollee(m_enrolleeResource); ASSERT_NE(nullptr, g_remoteEnrollee); @@ -374,6 +376,65 @@ TEST_F(ProvisionDevicePropertiesTest, EXPECT_EQ(cntForReceivedCallbackWithSuccess, 1); } +class RequestToConnectTest : public EasysetupMediatorTest +{ + +public: + RequestToConnectTest() = default; + ~RequestToConnectTest() = default; + + static void connectRequestStatusCb(shared_ptr< ConnectRequestStatus > /*status*/) + { + } + +protected: + void SetUp() + { + TestWithMock::SetUp(); + } + + void TearDown() + { + TestWithMock::TearDown(); + } +}; + +TEST_F(RequestToConnectTest, + ThrowExceptionWhenRequestToConnectFailedByCallbackIsNull) +{ + std::vector connectTypes; + connectTypes.push_back(ES_CONNECT_NONE); + + EXPECT_ANY_THROW(g_remoteEnrollee->requestToConnect(connectTypes, nullptr)); +} + +TEST_F(RequestToConnectTest, RequestToConnectSucceed) +{ + std::vector connectTypes; + connectTypes.push_back(ES_CONNECT_NONE); + + int cntForReceivedCallbackWithSuccess = 0; + + mocks.OnCallFunc(connectRequestStatusCb).Do( + [&cntForReceivedCallbackWithSuccess] + (std::shared_ptr< ConnectRequestStatus > status) + { + if(status->getESResult() == ES_OK) + { + cntForReceivedCallbackWithSuccess++; + } + + }); + + g_remoteEnrollee->requestToConnect(connectTypes, connectRequestStatusCb); + + std::unique_lock< std::mutex > lock{ mutexForCondition }; + responseCon.wait_for(lock, g_waitForResponse); + + EXPECT_EQ(cntForReceivedCallbackWithSuccess, 1); +} + + class ProvisionCloudPropertiesTest : public EasysetupMediatorTest { @@ -460,6 +521,32 @@ TEST_F(ProvisionCloudPropertiesTest, ProvisionCloudPropertiesSucceed) responseCon.wait_for(lock, g_waitForResponse); EXPECT_EQ(cntForReceivedCallbackWithSuccess, 1); +} + +TEST_F(ProvisionCloudPropertiesTest, ProvisionCloudPropertiesWithResourceSucceed) +{ + CloudProp cloudProp; + cloudProp.setCloudProp("authCode", "authProvider", "ciServer"); + cloudProp.setCloudID("f002ae8b-c42c-40d3-8b8d-1927c17bd1b3"); + + int cntForReceivedCallbackWithSuccess = 0; + + mocks.OnCallFunc(cloudPropProvStatusCb).Do( + [& cntForReceivedCallbackWithSuccess](std::shared_ptr< CloudPropProvisioningStatus > status) + { + if(status->getESResult() == ES_OK) + { + cntForReceivedCallbackWithSuccess++; + } + }); + + g_remoteEnrollee->provisionCloudProperties(g_enrolleeResource, cloudProp, cloudPropProvStatusCb); + + std::unique_lock< std::mutex > lock{ mutexForCondition }; + responseCon.wait_for(lock, g_waitForResponse); + + EXPECT_EQ(cntForReceivedCallbackWithSuccess, 1); ESTerminateEnrollee(); } + -- 2.7.4