From a0a5058ef3fbe0ae738fe9c47413ba3c7b8ab99e Mon Sep 17 00:00:00 2001 From: Sudipto Date: Tue, 16 Jun 2020 15:36:21 +0530 Subject: [PATCH] [Unit Test] Adding Unit Test for CAManager.cpp in IoTivity C++ Wrapper - Added Unit Test for CAManager.cpp - Changed the SConscript to build CAManagerTest.cpp https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/684/commits (cherry-picked from 08ce4fa0814b6c85a01e0a90be4821f523bdac3c) Change-Id: Ie704b0fbb947365c741e100d0e48c809e79a5aeb Signed-off-by: samanway-dey Signed-off-by: Sudipto --- resource/src/CAManager.cpp | 4 + resource/unittests/CAManagerTest.cpp | 151 +++++++++++++++++++++++++++++++++++ resource/unittests/SConscript | 1 + 3 files changed, 156 insertions(+) create mode 100644 resource/unittests/CAManagerTest.cpp diff --git a/resource/src/CAManager.cpp b/resource/src/CAManager.cpp index 7e56a97..8c1c983 100644 --- a/resource/src/CAManager.cpp +++ b/resource/src/CAManager.cpp @@ -100,6 +100,10 @@ void DefaultConnectionStateChangedHandler(const CAEndpoint_t *info, bool isConne OCStackResult CAManager::setNetworkMonitorHandler(AdapterChangedCallback adapterHandler, ConnectionChangedCallback connectionHandler) { + if (!adapterHandler || !connectionHandler) + { + return OC_STACK_INVALID_PARAM; + } g_adapterHandler = adapterHandler; g_connectionHandler = connectionHandler; diff --git a/resource/unittests/CAManagerTest.cpp b/resource/unittests/CAManagerTest.cpp new file mode 100644 index 0000000..b4df8be --- /dev/null +++ b/resource/unittests/CAManagerTest.cpp @@ -0,0 +1,151 @@ +/* **************************************************************** + * + * Copyright 2020 Samsung Electronics All Rights Reserved. + * + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************/ + +#include "CAManager.h" +#include + +#include + +using namespace OC; + +int g_int1, g_int2; + +void adapterHandlerCb(OCTransportAdapter adapter, bool var) +{ + g_int1 = 1; +} + +void connectionHandlerCb(const std::string& str, OCConnectivityType conn, bool var) +{ + g_int2 = 1; +} + +TEST(setNetworkMonitorHandler, setNetworkMonitorHandler_success) +{ + OCStackResult res = CAManager::setNetworkMonitorHandler(adapterHandlerCb, connectionHandlerCb); + EXPECT_EQ(OC_STACK_OK, res); +} + +TEST(setNetworkMonitorHandler, setNetworkMonitorHandler_NULLCB) +{ + CAManager::setLogLevel(OC_LOG_LEVEL_ALL, 0); + OCStackResult res = CAManager::setNetworkMonitorHandler(NULL, NULL); + EXPECT_EQ(OC_STACK_INVALID_PARAM, res); +} + +TEST(setPortNumberToAssign, setPortNumberToAssign_OC_STACK_OK) +{ + OCTransportAdapter adapter = OC_ADAPTER_IP; + OCTransportFlags flag = (OCTransportFlags) (OC_IP_USE_V4); + uint16_t port = 0xFFFF; + OCStackResult res = CAManager::setPortNumberToAssign(adapter, flag, port); + EXPECT_EQ(OC_STACK_OK, res); +} + +TEST(getAssignedPortNumber, getAssignedPortNumber_success) +{ + OCTransportAdapter adapter = OC_ADAPTER_IP; + OCTransportFlags flag = (OCTransportFlags) (OC_IP_USE_V4); + uint16_t port = 0; + OCStackResult res = CAManager::setPortNumberToAssign(adapter, flag, port); + uint16_t portNum = CAManager::getAssignedPortNumber(adapter, flag); + EXPECT_EQ(port, portNum); +} + +TEST(setMulticastTTL, setMulticastTTL_success) +{ + OCStackResult res = CAManager::setMulticastTTL(0); + EXPECT_EQ(OC_STACK_OK, res); +} + +TEST(setMulticastTTL, setMulticastTTL_invalidparam) +{ + OCStackResult res = CAManager::setMulticastTTL(256); + EXPECT_EQ(OC_STACK_INVALID_PARAM, res); +} + +TEST(setMulticastTTL, setMulticastTTL_notsupported) +{ + OCStackResult res = CAManager::setMulticastTTL(143); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} + +TEST(getMulticastTTL, getMulticastTTL_invalidparam) +{ + OCStackResult res = CAManager::getMulticastTTL(0); + EXPECT_EQ(OC_STACK_INVALID_PARAM, res); +} + +TEST(getMulticastTTL, getMulticastTTL_success) +{ + size_t var; + CAManager::setMulticastTTL(16); + OCStackResult res = CAManager::getMulticastTTL(&var); + EXPECT_EQ(16, var); +} + +TEST(setBTConfigure, setBTConfigure_NOTIMPL) +{ + CAManager::CAUtilConfig cfg; + CAManager::CAUtilConfig *ptr = &cfg; + OCStackResult res = CAManager::setBTConfigure(*ptr); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} + +TEST(startLEAdvertising, startLEAdvertising_NOT_SUPPORTED) +{ + OCStackResult res = CAManager::startLEAdvertising(); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} + +TEST(stopLEAdvertising, stopLEAdvertising_NOT_SUPPORTED) +{ + OCStackResult res = CAManager::stopLEAdvertising(); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} + +TEST(disconnectTCPSession, disconnectTCPSession_invalidparam) +{ + uint16_t port = 0xFFFF; + OCTransportFlags flags = OC_DEFAULT_FLAGS; + OCStackResult res = CAManager::disconnectTCPSession(NULL, port, flags); + EXPECT_EQ(OC_STACK_INVALID_PARAM, res); +} + +TEST(disconnectTCPSession, disconnectTCPSession_error) +{ + char *addr = (char *)calloc(10, sizeof(char)); + uint16_t port = 0xFFFF; + OCTransportFlags flags = OC_DEFAULT_FLAGS; + OCStackResult res = CAManager::disconnectTCPSession(addr, port, flags); + EXPECT_EQ(OC_STACK_ERROR, res); +} + +TEST(startCAGattServer, startpCAGattServer_NOT_SUPPORTED) +{ + OCStackResult res = CAManager::startCAGattServer(); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} + +TEST(stopCAGattServer, stopCAGattServer_NOT_SUPPORTED) +{ + OCStackResult res = CAManager::stopCAGattServer(); + EXPECT_EQ(OC_STACK_NOTIMPL, res); +} diff --git a/resource/unittests/SConscript b/resource/unittests/SConscript index 23b825d..50c5994 100644 --- a/resource/unittests/SConscript +++ b/resource/unittests/SConscript @@ -70,6 +70,7 @@ if unittests_env.get('WITH_CLOUD'): ###################################################################### unittests_src = [ + 'CAManagerTest.cpp', 'ConstructResourceTest.cpp', 'OCPlatformTest.cpp', 'OCRepresentationTest.cpp', -- 2.7.4