Disable lto option when building gtest
[platform/core/api/tethering.git] / tests / tethering-gtest-client.cpp
1 /*
2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include <gtest/gtest.h>
18
19 #include "tethering.h"
20
21 extern "C" {
22 #include "mocks/tethering_dummy_client.h"
23 #include "mocks/tethering_memory.h"
24 #include "mocks/tethering_system_info.h"
25 #include "mocks/tethering_vconf.h"
26 }
27
28 class TetheringClientTest: public ::testing::Test {
29         protected:
30                 tethering_client_h client;
31
32                 void SetUp() override
33                 {
34                         tethering_mock_set_memory_result(true);
35                         tethering_mock_set_sysinfo_result(true);
36                         tethering_mock_set_vconf_result(true);
37                         tethering_mock_create_dummy_client(&client);
38                 }
39
40                 void TearDown() override
41                 {
42                         tethering_mock_set_vconf_result(false);
43                         tethering_mock_set_sysinfo_result(false);
44                         tethering_mock_set_memory_result(true);
45                         tethering_mock_destroy_dummy_client(client);
46                 }
47 };
48
49 TEST_F(TetheringClientTest, CloneN)
50 {
51         tethering_client_h clone = NULL;
52
53         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_clone(NULL, client));
54         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_clone(&clone, NULL));
55         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_clone(NULL, NULL));
56
57         tethering_mock_set_memory_result(false);
58         EXPECT_EQ(TETHERING_ERROR_OUT_OF_MEMORY, tethering_client_clone(&clone, client));
59 }
60
61 TEST_F(TetheringClientTest, CloneP)
62 {
63         tethering_client_h clone = NULL;
64
65         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_clone(&clone, client));
66
67         tethering_client_destroy(clone);
68 }
69
70 TEST_F(TetheringClientTest, DestroyN)
71 {
72         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_destroy(NULL));
73 }
74
75 TEST_F(TetheringClientTest, DestroyP)
76 {
77         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_destroy(client));
78         client = NULL;
79 }
80
81 TEST_F(TetheringClientTest, GetTetheringTypeN)
82 {
83         tethering_type_e type;
84
85         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_tethering_type(NULL, &type));
86         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_tethering_type(client, NULL));
87         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_tethering_type(NULL, NULL));
88 }
89
90 TEST_F(TetheringClientTest, GetTetheringTypeP)
91 {
92         tethering_type_e type;
93
94         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_get_tethering_type(client, &type));
95 }
96
97 TEST_F(TetheringClientTest, GetNameN)
98 {
99         char *name = NULL;
100
101         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_name(NULL, &name));
102         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_name(client, NULL));
103         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_name(NULL, NULL));
104 }
105
106 TEST_F(TetheringClientTest, GetNameP)
107 {
108         char *name = NULL;
109
110         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_get_name(client, &name));
111
112         free(name);
113 }
114
115 TEST_F(TetheringClientTest, GetIpAddressN)
116 {
117         char *ip_address = NULL;
118
119         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER,
120                         tethering_client_get_ip_address(NULL, TETHERING_ADDRESS_FAMILY_IPV4, &ip_address));
121         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER,
122                         tethering_client_get_ip_address(client, TETHERING_ADDRESS_FAMILY_IPV4, NULL));
123         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER,
124                         tethering_client_get_ip_address(NULL, TETHERING_ADDRESS_FAMILY_IPV4, NULL));
125 }
126
127 TEST_F(TetheringClientTest, GetIpAddressP)
128 {
129         char *ip_address = NULL;
130
131         EXPECT_EQ(TETHERING_ERROR_NONE,
132                         tethering_client_get_ip_address(client, TETHERING_ADDRESS_FAMILY_IPV4, &ip_address));
133
134         free(ip_address);
135 }
136
137 TEST_F(TetheringClientTest, GetMacAddressN)
138 {
139         char *mac_address = NULL;
140
141         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_mac_address(NULL, &mac_address));
142         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_mac_address(client, NULL));
143         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_mac_address(NULL, NULL));
144 }
145
146 TEST_F(TetheringClientTest, GetMacAddressP)
147 {
148         char *mac_address = NULL;
149
150         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_get_mac_address(client, &mac_address));
151
152         free(mac_address);
153 }
154
155 TEST_F(TetheringClientTest, GetTimeN)
156 {
157         time_t timestamp;
158
159         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_time(NULL, &timestamp));
160         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_time(client, NULL));
161         EXPECT_EQ(TETHERING_ERROR_INVALID_PARAMETER, tethering_client_get_time(NULL, NULL));
162 }
163
164 TEST_F(TetheringClientTest, GetTimeP)
165 {
166         time_t timestamp;
167
168         EXPECT_EQ(TETHERING_ERROR_NONE, tethering_client_get_time(client, &timestamp));
169 }