gtest: add new test cases (sync, client) 32/236332/3
authorSeonah Moon <seonah1.moon@samsung.com>
Tue, 16 Jun 2020 08:45:35 +0000 (17:45 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Wed, 17 Jun 2020 08:02:31 +0000 (17:02 +0900)
Change-Id: I0ea62d35dd1af60fab21b4c3d37e517ab70d5824

src/softap_client.c
tests/CMakeLists.txt
tests/mocks/softap_dummy_client.c [new file with mode: 0644]
tests/mocks/softap_dummy_client.h [new file with mode: 0644]
tests/mocks/softap_gdbus.c
tests/mocks/softap_gdbus.h [new file with mode: 0644]
tests/mocks/softap_vconf.c
tests/softap-gtest-client.cpp [new file with mode: 0755]
tests/softap-gtest-common.cpp [new file with mode: 0755]
tests/softap-gtest-main.cpp [new file with mode: 0755]
tests/softap_gtest.cpp [deleted file]

index a156b9283e39e2e095cee8b3ac5a075bd2a2865e..c0acb78868a85e11541291500b19e5cf7514dabe 100755 (executable)
@@ -22,6 +22,8 @@ API int softap_client_clone(softap_client_h *dest, softap_client_h origin)
 {
        _retvm_if(dest == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
                        "Parameter(dest) is NULL\n");
+       _retvm_if(origin == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
+                       "Parameter(origin) is NULL\n");
 
        __softap_client_h *si = NULL;
        __softap_client_h *source = NULL;
@@ -121,6 +123,9 @@ API int softap_client_get_time(softap_client_h client, time_t *timestamp)
 {
        _retvm_if(client == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
                        "Parameter(client) is NULL\n");
+       _retvm_if(timestamp == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
+                       "Parameter(timestamp) is NULL\n");
+
 
        __softap_client_h *si = (__softap_client_h *)client;
 
index 4d6add680ad39f0c32bb93a1a703a58180200070..05e3eb456cbd5cac97948cf3e048580090bd823b 100644 (file)
@@ -16,10 +16,12 @@ SET_TARGET_PROPERTIES(${SOFTAP_GTEST} PROPERTIES
 --wrap=calloc,\
 --wrap=g_cancellable_new,\
 --wrap=g_bus_get_sync,\
---wrap=g_dbus_proxy_new_sync,\
 --wrap=g_dbus_connection_signal_subscribe,\
 --wrap=g_dbus_connection_signal_unsubscribe,\
+--wrap=g_dbus_proxy_new_sync,\
+--wrap=g_dbus_proxy_call_sync,\
 --wrap=ioctl,\
 --wrap=cynara_check,\
 --wrap=system_info_get_platform_bool,\
---wrap=vconf_get_int")
+--wrap=vconf_get_int,\
+--wrap=vconf_get_str")
diff --git a/tests/mocks/softap_dummy_client.c b/tests/mocks/softap_dummy_client.c
new file mode 100644 (file)
index 0000000..bfede45
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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 "softap_dummy_client.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#define SOFTAP_STR_INFO_LEN    20
+
+typedef struct {
+    char ip[SOFTAP_STR_INFO_LEN];
+    char mac[SOFTAP_STR_INFO_LEN];
+    char *hostname;
+    time_t tm;
+} __softap_client_h;
+
+void softap_mock_create_dummy_client(void **dummy_client)
+{
+       __softap_client_h *client = NULL;
+
+       client = malloc(sizeof(__softap_client_h));
+
+       snprintf(client->ip, SOFTAP_STR_INFO_LEN - 1, "%s", "192.168.43.125");
+       snprintf(client->mac, SOFTAP_STR_INFO_LEN - 1, "%s", "AB:CD:EF:AB:CD:EF");
+       client->hostname = strdup("softap-gtest");
+       time(&client->tm);
+
+       *dummy_client = (void *)client;
+}
+
+void softap_mock_destroy_dummy_client(void *dummy_client)
+{
+       __softap_client_h *client = (__softap_client_h *)dummy_client;
+
+       if (!client)
+               return;
+
+       free(client->hostname);
+       free(client);
+}
diff --git a/tests/mocks/softap_dummy_client.h b/tests/mocks/softap_dummy_client.h
new file mode 100644 (file)
index 0000000..6613855
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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.
+*/
+
+#pragma once
+
+void softap_mock_create_dummy_client(void **dummy_client);
+void softap_mock_destroy_dummy_client(void *dummy_client);
index 9c394ff7dae26871da45f2527b8ba9991f13dfb7..70ff5fcef2293dd61499f767734b709d32c88364 100644 (file)
  * limitations under the License.
  */
 
+#include "softap_gdbus.h"
+
 #include <stdio.h>
+#include <stdbool.h>
 #include <glib.h>
 #include <gio/gio.h>
 
+static bool softap_mock_gdbus_result;
+
+void softap_mock_set_gdbus_result(bool value)
+{
+       softap_mock_gdbus_result = value;
+}
+
 GCancellable *__wrap_g_cancellable_new(void)
 {
        return (GCancellable *)g_object_new(G_TYPE_CANCELLABLE, NULL);
@@ -59,3 +69,75 @@ void __wrap_g_dbus_connection_signal_unsubscribe(GDBusConnection *connection,
 {
        return;
 }
+
+typedef struct {
+       int type;
+       const char *ip;
+       const char *mac;
+       const char *hostname;
+       int time;
+} clients_info_s;
+
+#define TEST_CLIENTS_NUM 3
+clients_info_s dummy_clients[TEST_CLIENTS_NUM + 1] = {
+       {4, "192.168.43.10", "aa:bb:cc:aa:bb:cc", "client1", 1592379558},
+       {4, "192.168.43.23", "bb:cc:aa:bb:cc:aa", "client2", 1592379626},
+       {4, "192.168.43.57", "cc:aa:bb:cc:aa:bb", "client3", 1592379687},
+       {0, NULL, NULL, NULL, 0}
+};
+
+static GVariant *_get_connected_clients_info(void)
+{
+       GVariant *params = NULL;
+       GVariantBuilder *inner_builder;
+       GVariantBuilder *outer_builder;
+
+       outer_builder = g_variant_builder_new(G_VARIANT_TYPE("a(a{sv})"));
+
+       for (int i = 0; i < TEST_CLIENTS_NUM; i++) {
+               inner_builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+               g_variant_builder_add(inner_builder, "{sv}", "Type",
+                               g_variant_new_int32(dummy_clients[i].type));
+               g_variant_builder_add(inner_builder, "{sv}", "IP",
+                               g_variant_new_string(dummy_clients[i].ip));
+               g_variant_builder_add(inner_builder, "{sv}", "MAC",
+                               g_variant_new_string(dummy_clients[i].mac));
+               g_variant_builder_add(inner_builder, "{sv}", "Name",
+                               g_variant_new_string(dummy_clients[i].hostname));
+               g_variant_builder_add(inner_builder, "{sv}", "Time",
+                               g_variant_new_int32(dummy_clients[i].time));
+
+               g_variant_builder_add(outer_builder, "(@a{sv})", g_variant_builder_end(inner_builder));
+               g_variant_builder_unref(inner_builder);
+       }
+
+       params = g_variant_new("(@a(a{sv}))", g_variant_builder_end(outer_builder));
+       g_variant_builder_unref(outer_builder);
+
+       return params;
+}
+
+GVariant *__wrap_g_dbus_proxy_call_sync(GDBusProxy     *proxy,
+               const gchar             *method_name,
+               GVariant                *parameters,
+               GDBusCallFlags  flags,
+               gint                    timeout_msec,
+               GCancellable    *cancellable,
+               GError                  **error)
+{
+       GVariant *params = NULL;
+
+       if (!softap_mock_gdbus_result)
+               *error = g_error_new(G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "dbus error");
+
+       if (strcmp(method_name, "get_passphrase") == 0)
+               params = g_variant_new("(su)", "P@s$w0rd!", 0);
+       else if (strcmp(method_name, "get_dhcp_state") == 0)
+               params = g_variant_new("(b)", true);
+       else if (strcmp(method_name, "get_station_info") == 0)
+               params = _get_connected_clients_info();
+       else // set_wps_pin, push_wps_button, enable_dhcp, enable_dhcp_with_range, disable_dhcp
+               params = g_variant_new("(u)", 0);
+
+       return params;
+}
diff --git a/tests/mocks/softap_gdbus.h b/tests/mocks/softap_gdbus.h
new file mode 100644 (file)
index 0000000..fa66ddd
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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.
+*/
+
+#pragma once
+
+#include <stdbool.h>
+
+void softap_mock_set_gdbus_result(bool value);
index ee0f00644533a0e4e65449de3429df77e5c80263..2301b9d604fb34a4180b087d5d64d1f789a18d0c 100644 (file)
@@ -39,12 +39,22 @@ void softap_mock_set_enabled_state(bool enable)
 int __wrap_vconf_get_int(const char *in_key, int *intval)
 {
        if (!softap_mock_vconf_result)
-               return __real_vconf_get_int(in_key, intval);
+               return -1;
 
        if (softap_mock_enabled_state
                        && strncmp(in_key, VCONFKEY_MOBILE_HOTSPOT_MODE,
                                strlen(VCONFKEY_MOBILE_HOTSPOT_MODE)) == 0)
                *intval |= VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI_AP;
+       else
+               *intval = 0;
 
        return 0;
 }
+
+char *__wrap_vconf_get_str(const char *key)
+{
+       if (!softap_mock_vconf_result)
+               return NULL;
+
+       return strdup("vconf result string");
+}
diff --git a/tests/softap-gtest-client.cpp b/tests/softap-gtest-client.cpp
new file mode 100755 (executable)
index 0000000..587e6c7
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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 <gtest/gtest.h>
+
+#include "softap.h"
+
+extern "C" {
+#include "mocks/softap_dummy_client.h"
+#include "mocks/softap_memory.h"
+#include "mocks/softap_permission.h"
+#include "mocks/softap_system_info.h"
+#include "mocks/softap_vconf.h"
+}
+
+class SoftApClientTest: public ::testing::Test {
+       protected:
+               softap_client_h client;
+
+               void SetUp() override
+               {
+                       softap_mock_set_memory_result(true);
+                       softap_mock_set_sysinfo_result(true);
+                       softap_mock_set_permission(true);
+                       softap_mock_set_vconf_result(true);
+                       softap_mock_create_dummy_client(&client);
+               }
+
+               void TearDown() override
+               {
+                       softap_mock_set_vconf_result(false);
+                       softap_mock_set_permission(false);
+                       softap_mock_set_sysinfo_result(false);
+                       softap_mock_set_memory_result(true);
+                       softap_mock_destroy_dummy_client(client);
+               }
+};
+
+TEST_F(SoftApClientTest, CloneN)
+{
+       softap_client_h clone = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_clone(NULL, client));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_clone(&clone, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_clone(NULL, NULL));
+
+       softap_mock_set_memory_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OUT_OF_MEMORY, softap_client_clone(&clone, client));
+}
+
+TEST_F(SoftApClientTest, CloneP)
+{
+       softap_client_h clone = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_client_clone(&clone, client));
+
+       softap_client_destroy(clone);
+}
+
+TEST_F(SoftApClientTest, DestroyN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_destroy(NULL));
+}
+
+TEST_F(SoftApClientTest, DestroyP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_client_destroy(client));
+       client = NULL;
+}
+
+TEST_F(SoftApClientTest, GetNameN)
+{
+       char *name = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_name(NULL, &name));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_name(client, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_name(NULL, NULL));
+}
+
+TEST_F(SoftApClientTest, GetNameP)
+{
+       char *name = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_client_get_name(client, &name));
+}
+
+TEST_F(SoftApClientTest, GetIpAddressN)
+{
+       char *ip_address = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_client_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &ip_address));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_client_get_ip_address(client, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_client_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+}
+
+TEST_F(SoftApClientTest, GetIpAddressP)
+{
+       char *ip_address = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_client_get_ip_address(client, SOFTAP_ADDRESS_FAMILY_IPV4, &ip_address));
+}
+
+TEST_F(SoftApClientTest, GetMacAddressN)
+{
+       char *mac_address = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_mac_address(NULL, &mac_address));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_mac_address(client, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_mac_address(NULL, NULL));
+}
+
+TEST_F(SoftApClientTest, GetMacAddressP)
+{
+       char *mac_address = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_client_get_mac_address(client, &mac_address));
+}
+
+TEST_F(SoftApClientTest, GetTimeN)
+{
+       time_t timestamp;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_time(NULL, &timestamp));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_time(client, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_client_get_time(NULL, NULL));
+}
+
+TEST_F(SoftApClientTest, GetTimeP)
+{
+       time_t timestamp;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_client_get_time(client, &timestamp));
+}
diff --git a/tests/softap-gtest-common.cpp b/tests/softap-gtest-common.cpp
new file mode 100755 (executable)
index 0000000..6992907
--- /dev/null
@@ -0,0 +1,603 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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 <gtest/gtest.h>
+
+#include "softap.h"
+
+extern "C" {
+#include "mocks/softap_gdbus.h"
+#include "mocks/softap_memory.h"
+#include "mocks/softap_system_info.h"
+#include "mocks/softap_permission.h"
+#include "mocks/softap_vconf.h"
+}
+
+class SoftApTest: public ::testing::Test {
+       protected:
+               softap_h handle;
+
+               void SetUp() override
+               {
+                       softap_mock_set_gdbus_result(true);
+                       softap_mock_set_memory_result(true);
+                       softap_mock_set_sysinfo_result(true);
+                       softap_mock_set_permission(true);
+                       softap_mock_set_vconf_result(true);
+                       softap_create(&handle);
+               }
+
+               void TearDown() override
+               {
+                       softap_destroy(handle);
+                       softap_mock_set_vconf_result(false);
+                       softap_mock_set_permission(false);
+                       softap_mock_set_sysinfo_result(false);
+                       softap_mock_set_memory_result(true);
+                       softap_mock_set_gdbus_result(false);
+               }
+};
+
+TEST_F(SoftApTest, CreateHandleN)
+{
+       softap_h test_handle = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_create(NULL));
+
+       softap_mock_set_memory_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OUT_OF_MEMORY, softap_create(&test_handle));
+}
+
+TEST_F(SoftApTest, CreateHandleP)
+{
+       softap_h test_handle = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_create(&test_handle));
+
+       softap_destroy(test_handle);
+}
+
+TEST_F(SoftApTest, DestroyHandleN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_destroy(NULL));
+}
+
+TEST_F(SoftApTest, DestroyHandleP)
+{
+       softap_h test_handle = NULL;
+
+       softap_create(&test_handle);
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_destroy(test_handle));
+}
+
+TEST_F(SoftApTest, IsEnabledN)
+{
+       bool enable = false;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(NULL, &enable));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(NULL, NULL));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_is_enabled(handle, &enable));
+}
+
+TEST_F(SoftApTest, IsEnabledP)
+{
+       bool enable = false;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_is_enabled(handle, &enable));
+}
+
+TEST_F(SoftApTest, GetMacAddressN)
+{
+       char *mac = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(NULL, &mac));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(NULL, NULL));
+
+       softap_mock_set_enabled_state(false);
+       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED, softap_get_mac_address(handle, &mac));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_mac_address(handle, &mac));
+}
+
+TEST_F(SoftApTest, GetMacAddressP)
+{
+       char *mac = NULL;
+
+       softap_mock_set_enabled_state(true);
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_mac_address(handle, &mac));
+}
+
+TEST_F(SoftApTest, GetNetworkInterfaceNameN)
+{
+       char *interface_name = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_network_interface_name(NULL, &interface_name));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_network_interface_name(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_network_interface_name(NULL, NULL));
+
+       softap_mock_set_enabled_state(false);
+       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED, softap_get_network_interface_name(handle, &interface_name));
+}
+
+TEST_F(SoftApTest, GetNetworkInterfaceNameP)
+{
+       char *interface_name = NULL;
+
+       softap_mock_set_enabled_state(true);
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_network_interface_name(handle, &interface_name));
+}
+
+TEST_F(SoftApTest, SetIpAddressN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, "192.168.0.1"));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, "..."));
+       EXPECT_EQ(SOFTAP_ERROR_NOT_SUPPORTED,
+                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV6, "2001::23"));
+}
+
+TEST_F(SoftApTest, SetIpAddressP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, "192.168.0.1"));
+}
+
+TEST_F(SoftApTest, GetIpAddressN)
+{
+       char *ip = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+
+       softap_mock_set_enabled_state(false);
+       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
+                       softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
+}
+
+TEST_F(SoftApTest, GetIpAddressP)
+{
+       char *ip = NULL;
+
+       softap_mock_set_enabled_state(true);
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
+}
+
+TEST_F(SoftApTest, GetGatewayAddressN)
+{
+       char *gateway = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_gateway_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_gateway_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+
+       softap_mock_set_enabled_state(false);
+       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
+                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
+}
+
+TEST_F(SoftApTest, GetGatewayAddressP)
+{
+       char *gateway = NULL;
+
+       softap_mock_set_enabled_state(true);
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
+}
+
+TEST_F(SoftApTest, GetSubnetMaskN)
+{
+       char *subnetmask = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_subnet_mask(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_get_subnet_mask(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
+
+       softap_mock_set_enabled_state(false);
+       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
+                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
+}
+
+TEST_F(SoftApTest, GetSubnetMaskP)
+{
+       char *subnetmask = NULL;
+
+       softap_mock_set_enabled_state(true);
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
+}
+
+TEST_F(SoftApTest, SetSecurityTypeN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_security_type(NULL, SOFTAP_SECURITY_TYPE_WPA2_PSK));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_set_security_type(handle, (softap_security_type_e)-1));
+}
+
+TEST_F(SoftApTest, SetSecurityTypeP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_set_security_type(handle, SOFTAP_SECURITY_TYPE_NONE));
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_set_security_type(handle, SOFTAP_SECURITY_TYPE_WPA2_PSK));
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_set_security_type(handle, SOFTAP_SECURITY_TYPE_WPS));
+}
+
+TEST_F(SoftApTest, GetSecurityTypeN)
+{
+       softap_security_type_e type;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_security_type(NULL, &type));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_security_type(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_security_type(NULL, NULL));
+}
+
+TEST_F(SoftApTest, GetSecurityTypeP)
+{
+       softap_security_type_e type;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_security_type(handle, &type));
+}
+
+TEST_F(SoftApTest, SetSsidN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_ssid(NULL, "softap-gtest"));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_ssid(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_ssid(NULL, NULL));
+}
+
+TEST_F(SoftApTest, SetSsidP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_ssid(handle, "softap-gtest"));
+}
+
+TEST_F(SoftApTest, GetSsidN)
+{
+       char *ssid = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid(NULL, &ssid));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid(NULL, NULL));
+}
+
+TEST_F(SoftApTest, GetSsidP)
+{
+       char *ssid = NULL;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_ssid(handle, &ssid));
+}
+
+TEST_F(SoftApTest, SetSsidVisibilityN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_ssid_visibility(NULL, true));
+}
+
+TEST_F(SoftApTest, SetSsidVisibilityP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_ssid_visibility(handle, true));
+}
+
+TEST_F(SoftApTest, GetSsidVisibilityN)
+{
+       bool visible;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid_visibility(NULL, &visible));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid_visibility(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_ssid_visibility(NULL, NULL));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_ssid_visibility(handle, &visible));
+}
+
+TEST_F(SoftApTest, GetSsidVisibilityP)
+{
+       bool visible;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_ssid_visibility(handle, &visible));
+}
+
+TEST_F(SoftApTest, SetPassphraseN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_passphrase(NULL, "P@s$w0rd!"));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_passphrase(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_passphrase(NULL, NULL));
+
+       // Too short passphrase
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_passphrase(handle, "123"));
+
+       // Too long passphrase
+       char passphrase[70] = {0, };
+       for (int i = 0; i < 69; i++)
+               passphrase[i] = 'a';
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_passphrase(handle, passphrase));
+}
+
+TEST_F(SoftApTest, SetPassphraseP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_passphrase(handle, "P@s$w0rd!"));
+}
+
+TEST_F(SoftApTest, GetPassphraseN)
+{
+       char *passphrase;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_passphrase(NULL, &passphrase));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_passphrase(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_passphrase(NULL, NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_passphrase(handle, &passphrase));
+}
+
+TEST_F(SoftApTest, GetPassphraseP)
+{
+       char *passphrase;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_passphrase(handle, &passphrase));
+}
+
+TEST_F(SoftApTest, SetVendorElementN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_vendor_element(NULL, "DD050016328000"));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_vendor_element(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_vendor_element(NULL, NULL));
+
+       // Too long element
+       char element[1030] = {0, };
+       for (int i = 0; i < 1029; i++)
+               element[i] = 'a';
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_vendor_element(handle, element));
+}
+
+TEST_F(SoftApTest, SetVendorElementP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_vendor_element(handle, "DD050016328000"));
+}
+
+TEST_F(SoftApTest, GetVendorElementN)
+{
+       char *element;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_vendor_element(NULL, &element));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_vendor_element(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_vendor_element(NULL, NULL));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_vendor_element(handle, &element));
+}
+
+TEST_F(SoftApTest, GetVendorElementP)
+{
+       char *element;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_vendor_element(handle, &element));
+}
+
+TEST_F(SoftApTest, SetChannelN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_channel(NULL, 6));
+}
+
+TEST_F(SoftApTest, SetChannelP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_channel(handle, 6));
+}
+
+TEST_F(SoftApTest, GetChannelN)
+{
+       int channel;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_channel(NULL, &channel));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_channel(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_channel(NULL, NULL));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_channel(handle, &channel));
+}
+
+TEST_F(SoftApTest, GetChannelP)
+{
+       int channel;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_channel(handle, &channel));
+}
+
+TEST_F(SoftApTest, SetModeN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_mode(NULL, SOFTAP_WIRELESS_MODE_B));
+}
+
+TEST_F(SoftApTest, SetModeP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_mode(handle, SOFTAP_WIRELESS_MODE_B));
+}
+
+TEST_F(SoftApTest, GetModeN)
+{
+       softap_wireless_mode_e mode;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mode(NULL, &mode));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mode(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mode(NULL, NULL));
+
+       softap_mock_set_vconf_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_mode(handle, &mode));
+}
+
+TEST_F(SoftApTest, GetModeP)
+{
+       softap_wireless_mode_e mode;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_mode(handle, &mode));
+}
+
+TEST_F(SoftApTest, SetWpsPinN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_wps_pin(NULL, "1234567"));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_wps_pin(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_set_wps_pin(NULL, NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_set_wps_pin(handle, "1234567"));
+}
+
+TEST_F(SoftApTest, SetWpsPinP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_set_wps_pin(handle, "1234567"));
+}
+
+TEST_F(SoftApTest, PushWpsButtonN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_push_wps_button(NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_push_wps_button(handle));
+}
+
+TEST_F(SoftApTest, PushWpsButtonP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_push_wps_button(handle));
+}
+
+TEST_F(SoftApTest, EnableDhcpN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_enable_dhcp(NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_enable_dhcp(handle));
+}
+
+TEST_F(SoftApTest, EnableDhcpP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_enable_dhcp(handle));
+}
+
+TEST_F(SoftApTest, EnableDhcpWithRangeN)
+{
+       char start_ip[16] = "192.168.43.2";
+       char end_ip[16] = "192.168.43.100";
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_enable_dhcp_with_range(NULL, start_ip, end_ip));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_enable_dhcp_with_range(handle, NULL, end_ip));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_enable_dhcp_with_range(handle, start_ip, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_enable_dhcp_with_range(NULL, NULL, NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED,
+                       softap_enable_dhcp_with_range(handle, start_ip, end_ip));
+}
+
+TEST_F(SoftApTest, EnableDhcpWithRangeP)
+{
+       char start_ip[16] = "192.168.43.2";
+       char end_ip[16] = "192.168.43.100";
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_enable_dhcp_with_range(handle, start_ip, end_ip));
+}
+
+TEST_F(SoftApTest, DisableDhcpN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_disable_dhcp(NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_disable_dhcp(handle));
+}
+
+TEST_F(SoftApTest, DisableDhcpP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_disable_dhcp(handle));
+}
+
+TEST_F(SoftApTest, IsDhcpEnabledN)
+{
+       bool dhcp_enabled;
+
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_dhcp_enabled(NULL, &dhcp_enabled));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_dhcp_enabled(handle, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_dhcp_enabled(NULL, NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_is_dhcp_enabled(handle, &dhcp_enabled));
+}
+
+TEST_F(SoftApTest, IsDhcpEnabledP)
+{
+       bool dhcp_enabled;
+
+       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_is_dhcp_enabled(handle, &dhcp_enabled));
+}
+
+bool ConnectedClientsCallbackP(softap_client_h client, void *data)
+{
+       return true;
+}
+
+bool ConnectedClientsCallbackN(softap_client_h client, void *data)
+{
+       return false;
+}
+
+TEST_F(SoftApTest, ForeachConnectedClientsN)
+{
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_foreach_connected_clients(NULL, ConnectedClientsCallbackN, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_foreach_connected_clients(handle, NULL, NULL));
+       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
+                       softap_foreach_connected_clients(NULL, NULL, NULL));
+
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED,
+                       softap_foreach_connected_clients(handle, ConnectedClientsCallbackN, NULL));
+
+       softap_mock_set_gdbus_result(false);
+       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED,
+                       softap_foreach_connected_clients(handle, ConnectedClientsCallbackN, NULL));
+}
+
+TEST_F(SoftApTest, ForeachConnectedClientsP)
+{
+       EXPECT_EQ(SOFTAP_ERROR_NONE,
+                       softap_foreach_connected_clients(handle, ConnectedClientsCallbackP, NULL));
+}
diff --git a/tests/softap-gtest-main.cpp b/tests/softap-gtest-main.cpp
new file mode 100755 (executable)
index 0000000..4890e9c
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2020 Samsung Electronics Co., Ltd 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 <gtest/gtest.h>
+
+int main(int argc, char **argv)
+{
+       ::testing::InitGoogleTest(&argc, argv);
+       return RUN_ALL_TESTS();
+}
diff --git a/tests/softap_gtest.cpp b/tests/softap_gtest.cpp
deleted file mode 100755 (executable)
index d21b9ef..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2020 Samsung Electronics Co., Ltd 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 <gtest/gtest.h>
-
-#include "softap.h"
-
-extern "C" {
-#include "mocks/softap_memory.h"
-#include "mocks/softap_system_info.h"
-#include "mocks/softap_permission.h"
-#include "mocks/softap_vconf.h"
-}
-
-class SoftApTest: public ::testing::Test {
-       protected:
-               softap_h handle;
-
-               void SetUp() override
-               {
-                       softap_mock_set_memory_result(true);
-                       softap_mock_set_sysinfo_result(true);
-                       softap_mock_set_permission(true);
-                       softap_mock_set_vconf_result(true);
-                       softap_create(&handle);
-               }
-
-               void TearDown() override
-               {
-                       softap_destroy(handle);
-                       softap_mock_set_vconf_result(false);
-                       softap_mock_set_permission(false);
-                       softap_mock_set_sysinfo_result(false);
-                       softap_mock_set_memory_result(true);
-               }
-};
-
-TEST_F(SoftApTest, CreateHandleN)
-{
-       softap_h test_handle = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_create(NULL));
-
-       softap_mock_set_memory_result(false);
-       EXPECT_EQ(SOFTAP_ERROR_OUT_OF_MEMORY, softap_create(&test_handle));
-}
-
-TEST_F(SoftApTest, CreateHandleP)
-{
-       softap_h test_handle = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_create(&test_handle));
-
-       softap_destroy(test_handle);
-}
-
-TEST_F(SoftApTest, DestroyHandleN)
-{
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_destroy(NULL));
-}
-
-TEST_F(SoftApTest, DestroyHandleP)
-{
-       softap_h test_handle = NULL;
-
-       softap_create(&test_handle);
-       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_destroy(test_handle));
-}
-
-TEST_F(SoftApTest, IsEnabledN)
-{
-       bool enable = false;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(NULL, &enable));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(handle, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_is_enabled(NULL, NULL));
-
-       softap_mock_set_vconf_result(false);
-       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_is_enabled(handle, &enable));
-}
-
-TEST_F(SoftApTest, IsEnabledP)
-{
-       bool enable = false;
-
-       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_is_enabled(handle, &enable));
-}
-
-TEST_F(SoftApTest, GetMacAddressN)
-{
-       char *mac = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(NULL, &mac));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(handle, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER, softap_get_mac_address(NULL, NULL));
-
-       softap_mock_set_enabled_state(false);
-       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED, softap_get_mac_address(handle, &mac));
-
-       softap_mock_set_vconf_result(false);
-       EXPECT_EQ(SOFTAP_ERROR_OPERATION_FAILED, softap_get_mac_address(handle, &mac));
-}
-
-TEST_F(SoftApTest, GetMacAddressP)
-{
-       char *mac = NULL;
-
-       softap_mock_set_enabled_state(true);
-       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_mac_address(handle, &mac));
-}
-
-TEST_F(SoftApTest, SetIpAddressN)
-{
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_set_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, "192.168.0.1"));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_set_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, "..."));
-       EXPECT_EQ(SOFTAP_ERROR_NOT_SUPPORTED,
-                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV6, "2001::23"));
-}
-
-TEST_F(SoftApTest, SetIpAddressP)
-{
-       EXPECT_EQ(SOFTAP_ERROR_NONE,
-                       softap_set_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, "192.168.0.1"));
-}
-
-TEST_F(SoftApTest, GetIpAddressN)
-{
-       char *ip = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_ip_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-
-       softap_mock_set_enabled_state(false);
-       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
-                       softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
-}
-
-TEST_F(SoftApTest, GetIpAddressP)
-{
-       char *ip = NULL;
-
-       softap_mock_set_enabled_state(true);
-       EXPECT_EQ(SOFTAP_ERROR_NONE, softap_get_ip_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &ip));
-}
-
-TEST_F(SoftApTest, GetGatewayAddressN)
-{
-       char *gateway = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_gateway_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_gateway_address(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-
-       softap_mock_set_enabled_state(false);
-       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
-                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
-}
-
-TEST_F(SoftApTest, GetGatewayAddressP)
-{
-       char *gateway = NULL;
-
-       softap_mock_set_enabled_state(true);
-       EXPECT_EQ(SOFTAP_ERROR_NONE,
-                       softap_get_gateway_address(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &gateway));
-}
-
-TEST_F(SoftApTest, GetSubnetMaskN)
-{
-       char *subnetmask = NULL;
-
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_subnet_mask(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-       EXPECT_EQ(SOFTAP_ERROR_INVALID_PARAMETER,
-                       softap_get_subnet_mask(NULL, SOFTAP_ADDRESS_FAMILY_IPV4, NULL));
-
-       softap_mock_set_enabled_state(false);
-       EXPECT_EQ(SOFTAP_ERROR_NOT_PERMITTED,
-                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
-}
-
-TEST_F(SoftApTest, GetSubnetMaskP)
-{
-       char *subnetmask = NULL;
-
-       softap_mock_set_enabled_state(true);
-       EXPECT_EQ(SOFTAP_ERROR_NONE,
-                       softap_get_subnet_mask(handle, SOFTAP_ADDRESS_FAMILY_IPV4, &subnetmask));
-}
-
-int main(int argc, char **argv)
-{
-       ::testing::InitGoogleTest(&argc, argv);
-       return RUN_ALL_TESTS();
-}