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