[Unit Test] Adding Unit Test for CAManager.cpp in IoTivity C++ Wrapper 50/236350/1
authorSudipto <sudipto.bal@samsung.com>
Tue, 16 Jun 2020 10:06:21 +0000 (15:36 +0530)
committerSudipto <sudipto.bal@samsung.com>
Tue, 16 Jun 2020 10:07:55 +0000 (15:37 +0530)
- 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 <samanway.dey@samsung.com>
Signed-off-by: Sudipto <sudipto.bal@samsung.com>
resource/src/CAManager.cpp
resource/unittests/CAManagerTest.cpp [new file with mode: 0644]
resource/unittests/SConscript

index 7e56a97..8c1c983 100644 (file)
@@ -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 (file)
index 0000000..b4df8be
--- /dev/null
@@ -0,0 +1,151 @@
+/* ****************************************************************\r
+ *\r
+ * Copyright 2020 Samsung Electronics All Rights Reserved.\r
+ *\r
+ *\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ ******************************************************************/\r
+\r
+#include "CAManager.h"\r
+#include <OCPlatform.h>\r
+\r
+#include <gtest/gtest.h>\r
+\r
+using namespace OC;\r
+\r
+int g_int1, g_int2;\r
+\r
+void adapterHandlerCb(OCTransportAdapter adapter, bool var)\r
+{\r
+    g_int1 = 1;\r
+}\r
+\r
+void connectionHandlerCb(const std::string& str, OCConnectivityType conn, bool var)\r
+{\r
+    g_int2 = 1;\r
+}\r
+\r
+TEST(setNetworkMonitorHandler, setNetworkMonitorHandler_success)\r
+{\r
+    OCStackResult res = CAManager::setNetworkMonitorHandler(adapterHandlerCb, connectionHandlerCb);\r
+    EXPECT_EQ(OC_STACK_OK, res);\r
+}\r
+\r
+TEST(setNetworkMonitorHandler, setNetworkMonitorHandler_NULLCB)\r
+{\r
+    CAManager::setLogLevel(OC_LOG_LEVEL_ALL, 0);\r
+    OCStackResult res = CAManager::setNetworkMonitorHandler(NULL, NULL);\r
+    EXPECT_EQ(OC_STACK_INVALID_PARAM, res);\r
+}\r
+\r
+TEST(setPortNumberToAssign, setPortNumberToAssign_OC_STACK_OK)\r
+{\r
+    OCTransportAdapter adapter = OC_ADAPTER_IP;\r
+    OCTransportFlags flag = (OCTransportFlags) (OC_IP_USE_V4);\r
+    uint16_t port = 0xFFFF;\r
+    OCStackResult res = CAManager::setPortNumberToAssign(adapter, flag, port);\r
+    EXPECT_EQ(OC_STACK_OK, res);\r
+}\r
+\r
+TEST(getAssignedPortNumber, getAssignedPortNumber_success)\r
+{\r
+    OCTransportAdapter adapter = OC_ADAPTER_IP;\r
+    OCTransportFlags flag = (OCTransportFlags) (OC_IP_USE_V4);\r
+    uint16_t port = 0;\r
+    OCStackResult res = CAManager::setPortNumberToAssign(adapter, flag, port);\r
+    uint16_t portNum = CAManager::getAssignedPortNumber(adapter, flag);\r
+    EXPECT_EQ(port, portNum);\r
+}\r
+\r
+TEST(setMulticastTTL, setMulticastTTL_success)\r
+{\r
+    OCStackResult res = CAManager::setMulticastTTL(0);\r
+    EXPECT_EQ(OC_STACK_OK, res);\r
+}\r
+\r
+TEST(setMulticastTTL, setMulticastTTL_invalidparam)\r
+{\r
+    OCStackResult res = CAManager::setMulticastTTL(256);\r
+    EXPECT_EQ(OC_STACK_INVALID_PARAM, res);\r
+}\r
+\r
+TEST(setMulticastTTL, setMulticastTTL_notsupported)\r
+{\r
+    OCStackResult res = CAManager::setMulticastTTL(143);\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
+\r
+TEST(getMulticastTTL, getMulticastTTL_invalidparam)\r
+{\r
+    OCStackResult res = CAManager::getMulticastTTL(0);\r
+    EXPECT_EQ(OC_STACK_INVALID_PARAM, res);\r
+}\r
+\r
+TEST(getMulticastTTL, getMulticastTTL_success)\r
+{\r
+    size_t var;\r
+    CAManager::setMulticastTTL(16);\r
+    OCStackResult res = CAManager::getMulticastTTL(&var);\r
+    EXPECT_EQ(16, var);\r
+}\r
+\r
+TEST(setBTConfigure, setBTConfigure_NOTIMPL)\r
+{\r
+    CAManager::CAUtilConfig cfg;\r
+    CAManager::CAUtilConfig *ptr = &cfg;\r
+    OCStackResult res = CAManager::setBTConfigure(*ptr);\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
+\r
+TEST(startLEAdvertising, startLEAdvertising_NOT_SUPPORTED)\r
+{\r
+    OCStackResult res = CAManager::startLEAdvertising();\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
+\r
+TEST(stopLEAdvertising, stopLEAdvertising_NOT_SUPPORTED)\r
+{\r
+    OCStackResult res = CAManager::stopLEAdvertising();\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
+\r
+TEST(disconnectTCPSession, disconnectTCPSession_invalidparam)\r
+{\r
+    uint16_t port = 0xFFFF;\r
+    OCTransportFlags flags = OC_DEFAULT_FLAGS;\r
+    OCStackResult res = CAManager::disconnectTCPSession(NULL, port, flags);\r
+    EXPECT_EQ(OC_STACK_INVALID_PARAM, res);\r
+}\r
+\r
+TEST(disconnectTCPSession, disconnectTCPSession_error)\r
+{\r
+    char *addr = (char *)calloc(10, sizeof(char));\r
+    uint16_t port = 0xFFFF;\r
+    OCTransportFlags flags = OC_DEFAULT_FLAGS;\r
+    OCStackResult res = CAManager::disconnectTCPSession(addr, port, flags);\r
+    EXPECT_EQ(OC_STACK_ERROR, res);\r
+}\r
+\r
+TEST(startCAGattServer, startpCAGattServer_NOT_SUPPORTED)\r
+{\r
+    OCStackResult res = CAManager::startCAGattServer();\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
+\r
+TEST(stopCAGattServer, stopCAGattServer_NOT_SUPPORTED)\r
+{\r
+    OCStackResult res = CAManager::stopCAGattServer();\r
+    EXPECT_EQ(OC_STACK_NOTIMPL, res);\r
+}\r
index 23b825d..50c5994 100644 (file)
@@ -70,6 +70,7 @@ if unittests_env.get('WITH_CLOUD'):
 ######################################################################
 
 unittests_src = [
+               'CAManagerTest.cpp',
                'ConstructResourceTest.cpp',
                'OCPlatformTest.cpp',
                'OCRepresentationTest.cpp',