1 /*
2  * Copyright (c) 2023 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 #include <gtest/gtest.h>
16 #include <thread>
17 
18 #include "external_deps_proxy.h"
19 
20 namespace OHOS {
21 namespace NFC {
22 namespace TEST {
23 using namespace testing::ext;
24 using namespace OHOS::NFC;
25 class ExternalDepsProxyTest : public testing::Test {
26 public:
27     static void SetUpTestCase();
28     static void TearDownTestCase();
29     void SetUp();
30     void TearDown();
31 };
32 
SetUpTestCase()33 void ExternalDepsProxyTest::SetUpTestCase()
34 {
35     std::cout << " SetUpTestCase ExternalDepsProxyTest." << std::endl;
36 }
37 
TearDownTestCase()38 void ExternalDepsProxyTest::TearDownTestCase()
39 {
40     std::cout << " TearDownTestCase ExternalDepsProxyTest." << std::endl;
41 }
42 
SetUp()43 void ExternalDepsProxyTest::SetUp()
44 {
45     std::cout << " SetUp ExternalDepsProxyTest." << std::endl;
46 }
47 
TearDown()48 void ExternalDepsProxyTest::TearDown()
49 {
50     std::cout << " TearDown ExternalDepsProxyTest." << std::endl;
51 }
52 
53 /**
54  * @tc.name: HandleAppAddOrChangedEvent001
55  * @tc.desc: Test ExternalDepsProxyTest HandleAppAddOrChangedEvent.
56  * @tc.type: FUNC
57  */
58 HWTEST_F(ExternalDepsProxyTest, HandleAppAddOrChangedEvent001, TestSize.Level1)
59 {
60     std::shared_ptr<EventFwk::CommonEventData> data = nullptr;
61     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
62     externalDepsProxy->HandleAppAddOrChangedEvent(data);
63     std::vector<int> discTechList;
64     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
65     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
66 }
67 
68 /**
69  * @tc.name: GetDispatchTagAppsByTech001
70  * @tc.desc: Test ExternalDepsProxyTest GetDispatchTagAppsByTech.
71  * @tc.type: FUNC
72  */
73 HWTEST_F(ExternalDepsProxyTest, GetDispatchTagAppsByTech001, TestSize.Level1)
74 {
75     std::vector<int> discTechList;
76     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
77     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
78     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
79 }
80 #ifdef VENDOR_APPLICATIONS_ENABLED
81 /**
82  * @tc.name: GetVendorDispatchTagAppsByTech001
83  * @tc.desc: Test ExternalDepsProxyTest GetVendorDispatchTagAppsByTech.
84  * @tc.type: FUNC
85  */
86 HWTEST_F(ExternalDepsProxyTest, GetVendorDispatchTagAppsByTech001, TestSize.Level1)
87 {
88     std::vector<int> discTechList;
89     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
90     std::vector<ElementName> getVendorDispatchTagAppsByTech =
91         externalDepsProxy->GetVendorDispatchTagAppsByTech(discTechList);
92     ASSERT_TRUE(getVendorDispatchTagAppsByTech.size() == 0);
93 }
94 
95 /**
96  * @tc.name: RegQueryApplicationCb001
97  * @tc.desc: Test ExternalDepsProxyTest RegQueryApplicationCb.
98  * @tc.type: FUNC
99  */
100 HWTEST_F(ExternalDepsProxyTest, RegQueryApplicationCb001, TestSize.Level1)
101 {
102     sptr<IQueryAppInfoCallback> callback = nullptr;
103     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
104     externalDepsProxy->RegQueryApplicationCb(callback);
105     std::vector<int> discTechList;
106     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
107     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
108 }
109 
110 /**
111  * @tc.name: RegCardEmulationNotifyCb001
112  * @tc.desc: Test ExternalDepsProxyTest RegCardEmulationNotifyCb.
113  * @tc.type: FUNC
114  */
115 HWTEST_F(ExternalDepsProxyTest, RegCardEmulationNotifyCb001, TestSize.Level1)
116 {
117     sptr<IOnCardEmulationNotifyCb> callback = nullptr;
118     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
119     externalDepsProxy->RegCardEmulationNotifyCb(callback);
120     std::vector<int> discTechList;
121     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
122     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
123 }
124 
125 /**
126  * @tc.name: GetNotifyCardEmulationCallback001
127  * @tc.desc: Test ExternalDepsProxyTest GetNotifyCardEmulationCallback.
128  * @tc.type: FUNC
129  */
130 HWTEST_F(ExternalDepsProxyTest, GetNotifyCardEmulationCallback001, TestSize.Level1)
131 {
132     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
133     externalDepsProxy->GetNotifyCardEmulationCallback();
134     std::vector<int> discTechList;
135     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
136     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
137 }
138 #endif
139 /**
140  * @tc.name: NfcDataGetValue001
141  * @tc.desc: Test ExternalDepsProxyTest NfcDataGetValue.
142  * @tc.type: FUNC
143  */
144 HWTEST_F(ExternalDepsProxyTest, NfcDataGetValue001, TestSize.Level1)
145 {
146     Uri nfcEnableUri(KITS::NFC_DATA_URI);
147     std::string column = "";
148     int32_t value = 0;
149     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
150     KITS::ErrorCode errorCode = externalDepsProxy->NfcDataGetValue(nfcEnableUri, column, value);
151     ASSERT_TRUE(errorCode == KITS::ERR_NFC_DATABASE_RW);
152 }
153 
154 /**
155  * @tc.name: NfcDataSetValue001
156  * @tc.desc: Test ExternalDepsProxyTest NfcDataSetValue.
157  * @tc.type: FUNC
158  */
159 HWTEST_F(ExternalDepsProxyTest, NfcDataSetValue001, TestSize.Level1)
160 {
161     Uri nfcEnableUri(KITS::NFC_DATA_URI);
162     std::string column = "";
163     int32_t value = 0;
164     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
165     KITS::ErrorCode errorCode = externalDepsProxy->NfcDataSetValue(nfcEnableUri, column, value);
166     ASSERT_TRUE(errorCode == KITS::ERR_NONE);
167 }
168 
169 /**
170  * @tc.name: NfcDataSetString001
171  * @tc.desc: Test ExternalDepsProxyTest NfcDataSetString.
172  * @tc.type: FUNC
173  */
174 HWTEST_F(ExternalDepsProxyTest, NfcDataSetString001, TestSize.Level1)
175 {
176     std::string key = "";
177     std::string value = "";
178     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
179     externalDepsProxy->NfcDataSetString(key, value);
180     std::vector<int> discTechList;
181     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
182     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
183 }
184 
185 /**
186  * @tc.name: NfcDataGetString001
187  * @tc.desc: Test ExternalDepsProxyTest NfcDataGetString.
188  * @tc.type: FUNC
189  */
190 HWTEST_F(ExternalDepsProxyTest, NfcDataGetString001, TestSize.Level1)
191 {
192     std::string key = "";
193     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
194     externalDepsProxy->NfcDataGetString(key);
195     std::vector<int> discTechList;
196     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
197     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
198 }
199 
200 /**
201  * @tc.name: PublishNfcStateChanged001
202  * @tc.desc: Test ExternalDepsProxyTest PublishNfcStateChanged.
203  * @tc.type: FUNC
204  */
205 HWTEST_F(ExternalDepsProxyTest, PublishNfcStateChanged001, TestSize.Level1)
206 {
207     int newState = 0;
208     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
209     externalDepsProxy->PublishNfcStateChanged(newState);
210     std::vector<int> discTechList;
211     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
212     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
213 }
214 
215 /**
216  * @tc.name: WriteOpenAndCloseHiSysEvent001
217  * @tc.desc: Test ExternalDepsProxyTest WriteOpenAndCloseHiSysEvent.
218  * @tc.type: FUNC
219  */
220 HWTEST_F(ExternalDepsProxyTest, WriteOpenAndCloseHiSysEvent001, TestSize.Level1)
221 {
222     int openRequestCnt = 0;
223     int openFailCnt = 0;
224     int closeRequestCnt = 0;
225     int closeFailCnt = 0;
226     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
227     externalDepsProxy->WriteOpenAndCloseHiSysEvent(openRequestCnt, openFailCnt, closeRequestCnt, closeFailCnt);
228     std::vector<int> discTechList;
229     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
230     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
231 }
232 
233 /**
234  * @tc.name: WriteHceSwipeResultHiSysEvent001
235  * @tc.desc: Test ExternalDepsProxyTest WriteHceSwipeResultHiSysEvent.
236  * @tc.type: FUNC
237  */
238 HWTEST_F(ExternalDepsProxyTest, WriteHceSwipeResultHiSysEvent001, TestSize.Level1)
239 {
240     std::string appPackageName = "";
241     int hceSwipeCnt = 0;
242     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
243     externalDepsProxy->WriteHceSwipeResultHiSysEvent(appPackageName, hceSwipeCnt);
244     std::vector<int> discTechList;
245     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
246     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
247 }
248 
249 /**
250  * @tc.name: WriteDefaultPaymentAppChangeHiSysEvent001
251  * @tc.desc: Test ExternalDepsProxyTest WriteDefaultPaymentAppChangeHiSysEvent.
252  * @tc.type: FUNC
253  */
254 HWTEST_F(ExternalDepsProxyTest, WriteDefaultPaymentAppChangeHiSysEvent001, TestSize.Level1)
255 {
256     std::string oldAppPackageName = "";
257     std::string newAppPackageName = "";
258     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
259     externalDepsProxy->WriteDefaultPaymentAppChangeHiSysEvent(oldAppPackageName, newAppPackageName);
260     std::vector<int> discTechList;
261     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
262     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
263 }
264 
265 /**
266  * @tc.name: WriteTagFoundHiSysEvent001
267  * @tc.desc: Test ExternalDepsProxyTest WriteTagFoundHiSysEvent.
268  * @tc.type: FUNC
269  */
270 HWTEST_F(ExternalDepsProxyTest, WriteTagFoundHiSysEvent001, TestSize.Level1)
271 {
272     std::vector<int> techList;
273     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
274     externalDepsProxy->WriteTagFoundHiSysEvent(techList);
275     techList = {1, 2};
276     externalDepsProxy->WriteTagFoundHiSysEvent(techList);
277     std::vector<int> discTechList;
278     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
279     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
280 }
281 
282 /**
283  * @tc.name: WritePassiveListenHiSysEvent001
284  * @tc.desc: Test ExternalDepsProxyTest WritePassiveListenHiSysEvent.
285  * @tc.type: FUNC
286  */
287 HWTEST_F(ExternalDepsProxyTest, WritePassiveListenHiSysEvent001, TestSize.Level1)
288 {
289     int requestCnt = 0;
290     int failCnt = 0;
291     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
292     externalDepsProxy->WritePassiveListenHiSysEvent(requestCnt, failCnt);
293     std::vector<int> discTechList;
294     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
295     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
296 }
297 
298 /**
299  * @tc.name: WriteFirmwareUpdateHiSysEvent001
300  * @tc.desc: Test ExternalDepsProxyTest WriteFirmwareUpdateHiSysEvent.
301  * @tc.type: FUNC
302  */
303 HWTEST_F(ExternalDepsProxyTest, WriteFirmwareUpdateHiSysEvent001, TestSize.Level1)
304 {
305     int requestCnt = 0;
306     int failCnt = 0;
307     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
308     externalDepsProxy->WriteFirmwareUpdateHiSysEvent(requestCnt, failCnt);
309     std::vector<int> discTechList;
310     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
311     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
312 }
313 
314 /**
315  * @tc.name: BuildFailedParams001
316  * @tc.desc: Test ExternalDepsProxyTest BuildFailedParams.
317  * @tc.type: FUNC
318  */
319 HWTEST_F(ExternalDepsProxyTest, BuildFailedParams001, TestSize.Level1)
320 {
321     NfcFailedParams nfcFailedParams;
322     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
323     externalDepsProxy->BuildFailedParams(nfcFailedParams, MainErrorCode::INIT_SA_FAILED,
324         SubErrorCode::DEFAULT_ERR_DEF);
325     std::vector<int> discTechList;
326     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
327     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
328 }
329 
330 /**
331  * @tc.name: IsGranted001
332  * @tc.desc: Test ExternalDepsProxyTest IsGranted.
333  * @tc.type: FUNC
334  */
335 HWTEST_F(ExternalDepsProxyTest, IsGranted001, TestSize.Level1)
336 {
337     std::string permission = "";
338     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
339     bool isGranted = externalDepsProxy->IsGranted(permission);
340     ASSERT_TRUE(isGranted);
341 }
342 
343 /**
344  * @tc.name: DispatchTagAbility001
345  * @tc.desc: Test ExternalDepsProxyTest DispatchTagAbility.
346  * @tc.type: FUNC
347  */
348 HWTEST_F(ExternalDepsProxyTest, DispatchTagAbility001, TestSize.Level1)
349 {
350     std::shared_ptr<KITS::TagInfo> tagInfo = nullptr;
351     OHOS::sptr<IRemoteObject> tagServiceIface = nullptr;
352     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
353     externalDepsProxy->DispatchTagAbility(tagInfo, tagServiceIface);
354     std::vector<int> discTechList;
355     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
356     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
357 }
358 
359 /**
360  * @tc.name: StartVibratorOnce001
361  * @tc.desc: Test ExternalDepsProxyTest StartVibratorOnce.
362  * @tc.type: FUNC
363  */
364 HWTEST_F(ExternalDepsProxyTest, StartVibratorOnce001, TestSize.Level1)
365 {
366     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
367     externalDepsProxy->StartVibratorOnce();
368     std::vector<int> discTechList;
369     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
370     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
371 }
372 
373 /**
374  * @tc.name: GetPaymentAbilityInfos001
375  * @tc.desc: Test ExternalDepsProxyTest GetPaymentAbilityInfos.
376  * @tc.type: FUNC
377  */
378 HWTEST_F(ExternalDepsProxyTest, GetPaymentAbilityInfos001, TestSize.Level1)
379 {
380     std::vector<AbilityInfo> paymentAbilityInfos;
381     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
382     externalDepsProxy->GetPaymentAbilityInfos(paymentAbilityInfos);
383     std::vector<int> discTechList;
384     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
385     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
386 }
387 
388 /**
389  * @tc.name: GetHceAppsByAid001
390  * @tc.desc: Test ExternalDepsProxyTest GetHceAppsByAid.
391  * @tc.type: FUNC
392  */
393 HWTEST_F(ExternalDepsProxyTest, GetHceAppsByAid001, TestSize.Level1)
394 {
395     std::string aid = "";
396     std::vector<AppDataParser::HceAppAidInfo> hceApps;
397     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
398     externalDepsProxy->GetHceAppsByAid(aid, hceApps);
399     std::vector<int> discTechList;
400     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
401     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
402 }
403 
404 /**
405  * @tc.name: GetHceApps001
406  * @tc.desc: Test ExternalDepsProxyTest GetHceApps.
407  * @tc.type: FUNC
408  */
409 HWTEST_F(ExternalDepsProxyTest, GetHceApps001, TestSize.Level1)
410 {
411     std::vector<AppDataParser::HceAppAidInfo> hceApps;
412     std::shared_ptr<ExternalDepsProxy> externalDepsProxy = std::make_shared<ExternalDepsProxy>();
413     externalDepsProxy->GetHceApps(hceApps);
414     std::vector<int> discTechList;
415     std::vector<ElementName> getDispatchTagAppsByTech = externalDepsProxy->GetDispatchTagAppsByTech(discTechList);
416     ASSERT_TRUE(getDispatchTagAppsByTech.size() == 0);
417 }
418 
419 /**
420  * @tc.name: PublishNtf001
421  * @tc.desc: Test Publish Notification.
422  * @tc.type: FUNC
423  */
424 HWTEST_F(ExternalDepsProxyTest, PublishNtf001, TestSize.Level1)
425 {
426     std::string cardName = "";
427     int balance = 0;
428     ExternalDepsProxy::GetInstance().PublishNfcNotification(TAG::NFC_TAG_DEFAULT_NOTIFICATION_ID, cardName, balance);
429     ASSERT_TRUE(balance == 0);
430 }
431 
432 /**
433  * @tc.name: PublishNtf002
434  * @tc.desc: Test Publish Notification.
435  * @tc.type: FUNC
436  */
437 HWTEST_F(ExternalDepsProxyTest, PublishNtf002, TestSize.Level1)
438 {
439     std::string cardName = "";
440     int balance = 0;
441     int invalidNotificationId = 0;
442     ExternalDepsProxy::GetInstance().PublishNfcNotification(invalidNotificationId, cardName, balance);
443     ASSERT_TRUE(balance == 0);
444 }
445 }
446 }
447 }