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 #include "network_ability_stub_test.h"
17
18 #include "ipc_types.h"
19 #include "message_option.h"
20 #include "message_parcel.h"
21
22 #include "common_utils.h"
23 #include "constant_definition.h"
24 #include "location_log.h"
25 #include "network_ability_proxy.h"
26 #include "network_callback_host.h"
27 #include "subability_common.h"
28
29 using namespace testing;
30 using namespace testing::ext;
31
32 namespace OHOS {
33 namespace Location {
34 const int UNKNOWN_CODE = -1;
35 const int ERR_CODE = 100;
36 const int DEFAULT_STATUS = 0;
SetUp()37 void NetworkAbilityStubTest::SetUp()
38 {
39 }
40
TearDown()41 void NetworkAbilityStubTest::TearDown()
42 {
43 }
44
45 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest001, TestSize.Level1)
46 {
47 GTEST_LOG_(INFO)
48 << "NetworkAbilityStubTest, NetworkAbilityStubTest001, TestSize.Level1";
49 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest001 begin");
50 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
51 EXPECT_CALL(*networkAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
52 MessageParcel parcel;
53 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
54 MessageParcel reply;
55 MessageOption option;
56 EXPECT_EQ(ERRCODE_SUCCESS,
57 networkAbilityStub->OnRemoteRequest(ISubAbility::SEND_LOCATION_REQUEST, parcel, reply, option));
58 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest001 end");
59 }
60
61 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest002, TestSize.Level1)
62 {
63 GTEST_LOG_(INFO)
64 << "NetworkAbilityStubTest, NetworkAbilityStubTest002, TestSize.Level1";
65 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest002 begin");
66 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
67 EXPECT_CALL(*networkAbilityStub, SetEnable(_)).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
68 MessageParcel parcel;
69 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
70 MessageParcel reply;
71 MessageOption option;
72 EXPECT_EQ(ERRCODE_SUCCESS,
73 networkAbilityStub->OnRemoteRequest(ISubAbility::SET_ENABLE, parcel, reply, option));
74 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest002 end");
75 }
76
77 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest003, TestSize.Level1)
78 {
79 GTEST_LOG_(INFO)
80 << "NetworkAbilityStubTest, NetworkAbilityStubTest003, TestSize.Level1";
81 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest003 begin");
82 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
83 EXPECT_CALL(*networkAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
84 MessageParcel parcel;
85 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
86 MessageParcel reply;
87 MessageOption option;
88 EXPECT_EQ(ERRCODE_SUCCESS,
89 networkAbilityStub->OnRemoteRequest(ISubAbility::SELF_REQUEST, parcel, reply, option));
90 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest003 end");
91 }
92
93 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest004, TestSize.Level1)
94 {
95 GTEST_LOG_(INFO)
96 << "NetworkAbilityStubTest, NetworkAbilityStubTest004, TestSize.Level1";
97 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest004 begin");
98 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
99 EXPECT_CALL(*networkAbilityStub, EnableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
100 MessageParcel parcel;
101 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
102 MessageParcel reply;
103 MessageOption option;
104 EXPECT_EQ(ERRCODE_SUCCESS,
105 networkAbilityStub->OnRemoteRequest(ISubAbility::ENABLE_LOCATION_MOCK, parcel, reply, option));
106 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest004 end");
107 }
108
109 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest005, TestSize.Level1)
110 {
111 GTEST_LOG_(INFO)
112 << "NetworkAbilityStubTest, NetworkAbilityStubTest005, TestSize.Level1";
113 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest005 begin");
114 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
115 EXPECT_CALL(*networkAbilityStub, DisableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
116 MessageParcel parcel;
117 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
118 MessageParcel reply;
119 MessageOption option;
120 EXPECT_EQ(ERRCODE_SUCCESS,
121 networkAbilityStub->OnRemoteRequest(ISubAbility::DISABLE_LOCATION_MOCK, parcel, reply, option));
122 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest005 end");
123 }
124
125 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest006, TestSize.Level1)
126 {
127 GTEST_LOG_(INFO)
128 << "NetworkAbilityStubTest, NetworkAbilityStubTest006, TestSize.Level1";
129 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest006 begin");
130 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
131 EXPECT_CALL(*networkAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
132 MessageParcel parcel;
133 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
134 MessageParcel reply;
135 MessageOption option;
136 EXPECT_EQ(ERRCODE_SUCCESS,
137 networkAbilityStub->OnRemoteRequest(ISubAbility::SET_MOCKED_LOCATIONS, parcel, reply, option));
138 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest006 end");
139 }
140
141 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest007, TestSize.Level1)
142 {
143 GTEST_LOG_(INFO)
144 << "NetworkAbilityStubTest, NetworkAbilityStubTest007, TestSize.Level1";
145 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest007 begin");
146 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
147 MessageParcel parcel;
148 parcel.WriteInterfaceToken(NetworkAbilityProxy::GetDescriptor());
149 MessageParcel reply;
150 MessageOption option;
151 EXPECT_EQ(IPC_STUB_UNKNOW_TRANS_ERR,
152 networkAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
153 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest007 end");
154 }
155
156 HWTEST_F(NetworkAbilityStubTest, NetworkAbilityStubTest008, TestSize.Level1)
157 {
158 GTEST_LOG_(INFO)
159 << "NetworkAbilityStubTest, NetworkAbilityStubTest008, TestSize.Level1";
160 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest008 begin");
161 auto networkAbilityStub = sptr<MockNetworkAbilityStub>(new (std::nothrow) MockNetworkAbilityStub());
162 MessageParcel parcel;
163 parcel.WriteInterfaceToken(u"UNKNOWN_DESCRIPTOR");
164 MessageParcel reply;
165 MessageOption option;
166 EXPECT_EQ(ERRCODE_SERVICE_UNAVAILABLE,
167 networkAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
168 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkAbilityStubTest008 end");
169 }
170
171 /*
172 * @tc.name: NetworkCallback001
173 * @tc.desc: network callback
174 * @tc.type: FUNC
175 */
176 HWTEST_F(NetworkAbilityStubTest, NetworkCallback001, TestSize.Level1)
177 {
178 GTEST_LOG_(INFO)
179 << "NetworkAbilityStubTest, NetworkCallback001, TestSize.Level1";
180 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback001 begin");
181 auto networkCallbackHost =
182 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
183 EXPECT_NE(nullptr, networkCallbackHost);
184 std::unique_ptr<Location> location = std::make_unique<Location>();
185 networkCallbackHost->OnLocationReport(location);
186 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback001 end");
187 }
188
189 /*
190 * @tc.name: NetworkCallback002
191 * @tc.desc: network callback
192 * @tc.type: FUNC
193 */
194 HWTEST_F(NetworkAbilityStubTest, NetworkCallback002, TestSize.Level1)
195 {
196 GTEST_LOG_(INFO)
197 << "NetworkAbilityStubTest, NetworkCallback002, TestSize.Level1";
198 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback002 begin");
199 auto networkCallbackHost =
200 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
201 EXPECT_NE(nullptr, networkCallbackHost);
202 networkCallbackHost->OnLocatingStatusChange(DEFAULT_STATUS); // nullptr error
203 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback002 end");
204 }
205
206 /*
207 * @tc.name: NetworkCallback003
208 * @tc.desc: network callback
209 * @tc.type: FUNC
210 */
211 HWTEST_F(NetworkAbilityStubTest, NetworkCallback003, TestSize.Level1)
212 {
213 GTEST_LOG_(INFO)
214 << "NetworkAbilityStubTest, NetworkCallback003, TestSize.Level1";
215 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback003 begin");
216 auto networkCallbackHost =
217 sptr<NetworkCallbackHost>(new (std::nothrow) NetworkCallbackHost());
218 EXPECT_NE(nullptr, networkCallbackHost);
219 networkCallbackHost->OnErrorReport(ERR_CODE); // nullptr error
220 LBSLOGI(NETWORK, "[NetworkAbilityStubTest] NetworkCallback003 end");
221 }
222 } // namespace Location
223 } // namespace OHOS