1 /*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #ifdef FEATURE_NETWORK_SUPPORT
17 #include "network_ability_stub_test.h"
18
19 #include "ipc_types.h"
20 #include "message_option.h"
21 #include "message_parcel.h"
22
23 #include "common_utils.h"
24 #include "constant_definition.h"
25 #include "location_log.h"
26 #include "network_ability_proxy.h"
27 #include "network_callback_host.h"
28 #include "subability_common.h"
29 #include "locationhub_ipc_interface_code.h"
30
31 using namespace testing;
32 using namespace testing::ext;
33
34 namespace OHOS {
35 namespace Location {
36 const int UNKNOWN_CODE = -1;
37 const int ERR_CODE = 100;
38 const int DEFAULT_STATUS = 0;
SetUp()39 void NetworkAbilityStubTest::SetUp()
40 {
41 }
42
TearDown()43 void NetworkAbilityStubTest::TearDown()
44 {
45 }
46
47 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest001, TestSize.Level1)
48 {
49 GTEST_LOG_(INFO)
50 << "NetworkAbilityStubTest, NetworkAbilityStubTest001, TestSize.Level1";
51 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest001 begin");
52 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
53 EXPECT_CALL(*networkAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
54 MessageParcel parcel;
55 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
56 MessageParcel reply;
57 MessageOption option;
58 EXPECT_EQ(ERRCODE_SUCCESS,
59 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::SEND_LOCATION_REQUEST),
60 parcel, reply, option));
61 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest001 end");
62 }
63
64 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest002, TestSize.Level1)
65 {
66 GTEST_LOG_(INFO)
67 << "NetworkAbilityStubTest, NetworkAbilityStubTest002, TestSize.Level1";
68 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest002 begin");
69 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
70 EXPECT_CALL(*networkAbilityStub, SetEnable(_)).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
71 MessageParcel parcel;
72 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
73 MessageParcel reply;
74 MessageOption option;
75 EXPECT_EQ(ERRCODE_SUCCESS,
76 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::SET_ENABLE),
77 parcel, reply, option));
78 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest002 end");
79 }
80
81 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest003, TestSize.Level1)
82 {
83 GTEST_LOG_(INFO)
84 << "NetworkAbilityStubTest, NetworkAbilityStubTest003, TestSize.Level1";
85 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest003 begin");
86 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
87 MessageParcel parcel;
88 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
89 MessageParcel reply;
90 MessageOption option;
91 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::SELF_REQUEST),
92 parcel, reply, option);
93 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest003 end");
94 }
95
96 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest004, TestSize.Level1)
97 {
98 GTEST_LOG_(INFO)
99 << "NetworkAbilityStubTest, NetworkAbilityStubTest004, TestSize.Level1";
100 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest004 begin");
101 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
102 EXPECT_CALL(*networkAbilityStub, EnableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
103 MessageParcel parcel;
104 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
105 MessageParcel reply;
106 MessageOption option;
107 EXPECT_EQ(ERRCODE_SUCCESS,
108 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::ENABLE_LOCATION_MOCK),
109 parcel, reply, option));
110 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest004 end");
111 }
112
113 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest005, TestSize.Level1)
114 {
115 GTEST_LOG_(INFO)
116 << "NetworkAbilityStubTest, NetworkAbilityStubTest005, TestSize.Level1";
117 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest005 begin");
118 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
119 EXPECT_CALL(*networkAbilityStub, DisableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
120 MessageParcel parcel;
121 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
122 MessageParcel reply;
123 MessageOption option;
124 EXPECT_EQ(ERRCODE_SUCCESS,
125 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::DISABLE_LOCATION_MOCK),
126 parcel, reply, option));
127 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest005 end");
128 }
129
130 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest006, TestSize.Level1)
131 {
132 GTEST_LOG_(INFO)
133 << "NetworkAbilityStubTest, NetworkAbilityStubTest006, TestSize.Level1";
134 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest006 begin");
135 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
136 EXPECT_CALL(*networkAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
137 MessageParcel parcel;
138 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
139 MessageParcel reply;
140 MessageOption option;
141 EXPECT_EQ(ERRCODE_SUCCESS,
142 networkAbilityStub->OnRemoteRequest(static_cast<uint32_t>(NetworkInterfaceCode::SET_MOCKED_LOCATIONS),
143 parcel, reply, option));
144 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest006 end");
145 }
146
147 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest007, TestSize.Level1)
148 {
149 GTEST_LOG_(INFO)
150 << "NetworkAbilityStubTest, NetworkAbilityStubTest007, TestSize.Level1";
151 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest007 begin");
152 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
153 MessageParcel parcel;
154 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
155 MessageParcel reply;
156 MessageOption option;
157 EXPECT_EQ(IPC_STUB_UNKNOW_TRANS_ERR,
158 networkAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
159 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest007 end");
160 }
161
162 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest008, TestSize.Level1)
163 {
164 GTEST_LOG_(INFO)
165 << "NetworkAbilityStubTest, NetworkAbilityStubTest008, TestSize.Level1";
166 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest008 begin");
167 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
168 MessageParcel parcel;
169 parcel.WriteInterfaceToken(u"UNKNOWN_DESCRIPTOR");
170 MessageParcel reply;
171 MessageOption option;
172 EXPECT_EQ(ERRCODE_SERVICE_UNAVAILABLE,
173 networkAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
174 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest008 end");
175 }
176
177 /*
178 * @tc.name: NetworkCallback001
179 * @tc.desc: network callback
180 * @tc.type: FUNC
181 */
182 HWTEST_F(NetworkAbilityStubTest, NetworkCallback001, TestSize.Level1)
183 {
184 GTEST_LOG_(INFO)
185 << "NetworkAbilityStubTest, NetworkCallback001, TestSize.Level1";
186 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback001 begin");
187 auto networkCallbackHost =
188 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
189 EXPECT_NE(nullptr, networkCallbackHost);
190 std::unique_ptr<Location> location = std::make_unique<Location>();
191 networkCallbackHost->OnLocationReport(location);
192 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback001 end");
193 }
194
195 /*
196 * @tc.name: NetworkCallback002
197 * @tc.desc: network callback
198 * @tc.type: FUNC
199 */
200 HWTEST_F(NetworkAbilityStubTest, NetworkCallback002, TestSize.Level1)
201 {
202 GTEST_LOG_(INFO)
203 << "NetworkAbilityStubTest, NetworkCallback002, TestSize.Level1";
204 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback002 begin");
205 auto networkCallbackHost =
206 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
207 EXPECT_NE(nullptr, networkCallbackHost);
208 networkCallbackHost->OnLocatingStatusChange(DEFAULT_STATUS); // nullptr error
209 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback002 end");
210 }
211
212 /*
213 * @tc.name: NetworkCallback003
214 * @tc.desc: network callback
215 * @tc.type: FUNC
216 */
217 HWTEST_F(NetworkAbilityStubTest, NetworkCallback003, TestSize.Level1)
218 {
219 GTEST_LOG_(INFO)
220 << "NetworkAbilityStubTest, NetworkCallback003, TestSize.Level1";
221 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback003 begin");
222 auto networkCallbackHost =
223 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
224 EXPECT_NE(nullptr, networkCallbackHost);
225 networkCallbackHost->OnErrorReport(ERR_CODE); // nullptr error
226 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback003 end");
227 }
228 } // namespace Location
229 } // namespace OHOS
230 #endif // FEATURE_NETWORK_SUPPORT
231