• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 <gtest/gtest.h>
17 #include <thread>
18 
19 #include "hce_service.h"
20 #include "nfc_controller.h"
21 #include "hce_cmd_callback_stub.h"
22 
23 namespace OHOS {
24 namespace NFC {
25 namespace TEST {
26 using namespace testing::ext;
27 using namespace OHOS::NFC::KITS;
28 using namespace OHOS::NFC::HCE;
29 class HceServiceTest : public testing::Test {
30 public:
31     static void SetUpTestCase();
32     static void TearDownTestCase();
33     void SetUp();
34     void TearDown();
35 };
36 
SetUpTestCase()37 void HceServiceTest::SetUpTestCase()
38 {
39     std::cout << " SetUpTestCase HceServiceTest." << std::endl;
40 }
41 
TearDownTestCase()42 void HceServiceTest::TearDownTestCase()
43 {
44     std::cout << " TearDownTestCase HceServiceTest." << std::endl;
45 }
46 
SetUp()47 void HceServiceTest::SetUp()
48 {
49     std::cout << " SetUp HceServiceTest." << std::endl;
50 }
51 
TearDown()52 void HceServiceTest::TearDown()
53 {
54     std::cout << " TearDown HceServiceTest." << std::endl;
55 }
56 
57 class HceCmdListener : public IHceCmdCallback {
58 public:
HceCmdListener()59     HceCmdListener() {}
60 
~HceCmdListener()61     virtual ~HceCmdListener() {}
62 
63 public:
OnCeApduData(const std::vector<uint8_t> & data)64     void OnCeApduData(const std::vector<uint8_t>& data) override
65     {
66         std::cout << "OnCeApduData" << std::endl;
67     }
68 
AsObject()69     OHOS::sptr<OHOS::IRemoteObject> AsObject() override
70     {
71         return nullptr;
72     }
73 };
74 
75 /**
76  * @tc.name: RegHceCmdCallback001
77  * @tc.desc: Test HceServiceTest RegHceCmdCallback.
78  * @tc.type: FUNC
79  */
80 HWTEST_F(HceServiceTest, RegHceCmdCallback001, TestSize.Level1)
81 {
82     sptr<HceCmdListener> callback = sptr<HceCmdListener>(new (std::nothrow) HceCmdListener());
83     HceService::GetInstance().RegHceCmdCallback(callback, "hceCmd");
84     uint32_t code = 0;
85     MessageParcel data;
86     MessageParcel reply;
87     MessageOption option;
88     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
89     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
90 }
91 
92 /**
93  * @tc.name: UnRegHceCmdCallback001
94  * @tc.desc: Test HceServiceTest UnRegHceCmdCallback.
95  * @tc.type: FUNC
96  */
97 HWTEST_F(HceServiceTest, UnRegHceCmdCallback001, TestSize.Level1)
98 {
99     sptr<HceCmdListener> callback = sptr<HceCmdListener>(new (std::nothrow) HceCmdListener());
100     HceService::GetInstance().UnRegHceCmdCallback(callback, "hceCmd");
101     uint32_t code = 0;
102     MessageParcel data;
103     MessageParcel reply;
104     MessageOption option;
105     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
106     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
107 }
108 
109 /**
110  * @tc.name: SendRawFrame001
111  * @tc.desc: Test HceServiceTest SendRawFrame001.
112  * @tc.type: FUNC
113  */
114 HWTEST_F(HceServiceTest, SendRawFrame001, TestSize.Level1)
115 {
116     std::string hexCmdData = "010203";
117     std::string hexRespData = "";
118     HceService::GetInstance().SendRawFrame(hexCmdData, true, hexRespData);
119     uint32_t code = 0;
120     MessageParcel data;
121     MessageParcel reply;
122     MessageOption option;
123     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
124     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
125 }
126 
127 /**
128  * @tc.name: GetPaymentServices001
129  * @tc.desc: Test HceServiceTest GetPaymentServices001.
130  * @tc.type: FUNC
131  */
132 HWTEST_F(HceServiceTest, GetPaymentServices001, TestSize.Level1)
133 {
134     std::vector<AbilityInfo> abilityInfos;
135     HceService::GetInstance().GetPaymentServices(abilityInfos);
136     uint32_t code = 0;
137     MessageParcel data;
138     MessageParcel reply;
139     MessageOption option;
140     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
141     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
142 }
143 
144 /**
145  * @tc.name: IsDefaultService001
146  * @tc.desc: Test HceServiceTest IsDefaultService001.
147  * @tc.type: FUNC
148  */
149 HWTEST_F(HceServiceTest, IsDefaultService001, TestSize.Level1)
150 {
151     ElementName element;
152     const std::string type = "";
153     bool isDefaultService = true;
154     HceService::GetInstance().IsDefaultService(element, type, isDefaultService);
155     uint32_t code = 0;
156     MessageParcel data;
157     MessageParcel reply;
158     MessageOption option;
159     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
160     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
161 }
162 
163 /**
164  * @tc.name: StopHce001
165  * @tc.desc: Test HceServiceTest StopHce001.
166  * @tc.type: FUNC
167  */
168 HWTEST_F(HceServiceTest, StopHce001, TestSize.Level1)
169 {
170     ElementName element;
171     HceService::GetInstance().StopHce(element);
172     uint32_t code = 0;
173     MessageParcel data;
174     MessageParcel reply;
175     MessageOption option;
176     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
177     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
178 }
179 
180 /**
181  * @tc.name: RegHceCmdCallback0001
182  * @tc.desc: Test HceServiceTest RegHceCmdCallback.
183  * @tc.type: FUNC
184  */
185 HWTEST_F(HceServiceTest, RegHceCmdCallback0001, TestSize.Level1)
186 {
187     sptr<HceCmdListener> callback = nullptr;
188     KITS::ErrorCode ret = HceCmdCallbackStub::GetInstance().RegHceCmdCallback(callback);
189     ASSERT_TRUE(ret == NFC::KITS::ErrorCode::ERR_NFC_PARAMETERS);
190 }
191 
192 /**
193  * @tc.name: RegHceCmdCallback0002
194  * @tc.desc: Test HceServiceTest RegHceCmdCallback.
195  * @tc.type: FUNC
196  */
197 HWTEST_F(HceServiceTest, RegHceCmdCallback0002, TestSize.Level1)
198 {
199     sptr<HceCmdListener> callback = sptr<HceCmdListener>(new (std::nothrow) HceCmdListener());
200     KITS::ErrorCode ret = HceCmdCallbackStub::GetInstance().RegHceCmdCallback(callback);
201     ASSERT_TRUE(ret == NFC::KITS::ErrorCode::ERR_NONE);
202 }
203 
204 /**
205  * @tc.name: OnRemoteRequest0001
206  * @tc.desc: Test HceServiceTest OnRemoteRequest.
207  * @tc.type: FUNC
208  */
209 HWTEST_F(HceServiceTest, OnRemoteRequest0001, TestSize.Level1)
210 {
211     uint32_t code = 0;
212     MessageParcel data;
213     MessageParcel reply;
214     MessageOption option;
215     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
216     ASSERT_TRUE(ret == KITS::ERR_NFC_PARAMETERS);
217 }
218 
219 /**
220  * @tc.name: OnRemoteRequest0002
221  * @tc.desc: Test HceServiceTest OnRemoteRequest.
222  * @tc.type: FUNC
223  */
224 HWTEST_F(HceServiceTest, OnRemoteRequest0002, TestSize.Level1)
225 {
226     uint32_t code = 0;
227     MessageParcel data;
228     MessageParcel reply;
229     MessageOption option;
230     std::u16string descriptor = u"ohos.nfc.kits.IHceCmdCallback";
231     data.WriteInterfaceToken(descriptor);
232     data.WriteInt32(1);
233     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
234     ASSERT_TRUE(ret == 1);
235 }
236 
237 /**
238  * @tc.name: OnRemoteRequest0003
239  * @tc.desc: Test HceServiceTest OnRemoteRequest.
240  * @tc.type: FUNC
241  */
242 HWTEST_F(HceServiceTest, OnRemoteRequest0003, TestSize.Level1)
243 {
244     uint32_t code = 0;
245     MessageParcel data;
246     MessageParcel reply;
247     MessageOption option;
248     std::u16string descriptor = u"ohos.nfc.kits.IHceCmdCallback";
249     data.WriteInterfaceToken(descriptor);
250     data.WriteInt32(0);
251     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
252     ASSERT_TRUE(ret);
253 }
254 
255 /**
256  * @tc.name: OnRemoteRequest0004
257  * @tc.desc: Test HceServiceTest OnRemoteRequest.
258  * @tc.type: FUNC
259  */
260 HWTEST_F(HceServiceTest, OnRemoteRequest0004, TestSize.Level1)
261 {
262     uint32_t code = 304;
263     MessageParcel data;
264     MessageParcel reply;
265     MessageOption option;
266     std::u16string descriptor = u"ohos.nfc.kits.IHceCmdCallback";
267     data.WriteInterfaceToken(descriptor);
268     data.WriteInt32(0);
269     int ret = HceCmdCallbackStub::GetInstance().OnRemoteRequest(code, data, reply, option);
270     ASSERT_TRUE(ret == KITS::ERR_NONE);
271 }
272 }
273 }
274 }