1 /*
2 * Copyright (C) 2022-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 "user_auth_stub_test.h"
17
18 #include "iam_common_defines.h"
19 #include "mock_auth_event_listener.h"
20 #include "mock_user_auth_callback.h"
21 #include "mock_user_auth_service.h"
22
23 namespace OHOS {
24 namespace UserIam {
25 namespace UserAuth {
26 using namespace testing;
27 using namespace testing::ext;
28
SetUpTestCase()29 void UserAuthStubTest::SetUpTestCase()
30 {
31 }
32
TearDownTestCase()33 void UserAuthStubTest::TearDownTestCase()
34 {
35 }
36
SetUp()37 void UserAuthStubTest::SetUp()
38 {
39 }
40
TearDown()41 void UserAuthStubTest::TearDown()
42 {
43 }
44
45 HWTEST_F(UserAuthStubTest, UserAuthStubGetEnrolledStateStub001, TestSize.Level0)
46 {
47 MessageParcel data;
48 MessageParcel reply;
49 MessageOption option(MessageOption::TF_SYNC);
50 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_ENROLLED_STATE;
51
52 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
53
54 MockUserAuthService service;
55 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
56 }
57
58 HWTEST_F(UserAuthStubTest, UserAuthStubGetEnrolledStateStub002, TestSize.Level0)
59 {
60 MessageParcel data;
61 MessageParcel reply;
62 MockUserAuthService service;
63 int32_t testApiVersion = 12;
64 AuthType testAuthType = FACE;
65 uint64_t expectCredentialDigest = 23962;
66 uint16_t expectCredentialCount = 1;
67 EXPECT_CALL(service, GetEnrolledState(_, _, _)).Times(1);
68 ON_CALL(service, GetEnrolledState)
69 .WillByDefault(
70 [testApiVersion, testAuthType, expectCredentialDigest, expectCredentialCount](int32_t apiVersion,
__anon5dedf9810102(int32_t apiVersion, AuthType authType, EnrolledState &enrolledState) 71 AuthType authType, EnrolledState &enrolledState) {
72 EXPECT_EQ(apiVersion, testApiVersion);
73 EXPECT_EQ(authType, testAuthType);
74 enrolledState.credentialDigest = expectCredentialDigest;
75 enrolledState.credentialCount = expectCredentialCount;
76 return SUCCESS;
77 }
78 );
79
80 MessageOption option(MessageOption::TF_SYNC);
81 uint32_t code = static_cast<uint32_t>(UserAuthInterfaceCode::USER_AUTH_GET_ENROLLED_STATE);
82
83 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
84 EXPECT_TRUE(data.WriteInt32(testApiVersion));
85 EXPECT_TRUE(data.WriteUint32(testAuthType));
86
87 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
88 int32_t result = FAIL;
89 EXPECT_TRUE(reply.ReadInt32(result));
90 EXPECT_EQ(SUCCESS, result);
91 uint64_t actualCredentialDigest;
92 EXPECT_TRUE(reply.ReadUint64(actualCredentialDigest));
93 EXPECT_EQ(expectCredentialDigest, actualCredentialDigest);
94 uint16_t actualCredentialCount;
95 EXPECT_TRUE(reply.ReadUint16(actualCredentialCount));
96 EXPECT_EQ(expectCredentialCount, actualCredentialCount);
97 }
98
99 HWTEST_F(UserAuthStubTest, UserAuthStubGetAvailableStatusStub001, TestSize.Level0)
100 {
101 MessageParcel data;
102 MessageParcel reply;
103 MessageOption option(MessageOption::TF_SYNC);
104 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_AVAILABLE_STATUS;
105
106 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
107
108 MockUserAuthService service;
109 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
110 }
111
112 HWTEST_F(UserAuthStubTest, UserAuthStubGetAvailableStatusStub002, TestSize.Level0)
113 {
114 MockUserAuthService service;
115 AuthType testAuthType = FACE;
116 AuthTrustLevel testAuthTrustLevel = ATL3;
117 int32_t testApiVersion = 8;
118 int32_t testUserId = 100;
__anon5dedf9810202() 119 EXPECT_CALL(service, GetAvailableStatus(_, _, _, _)).WillRepeatedly([]() {
120 return SUCCESS;
121 });
122
123 MessageParcel data;
124 MessageParcel reply;
125 MessageOption option(MessageOption::TF_SYNC);
126 uint32_t code = static_cast<uint32_t>(UserAuthInterfaceCode::USER_AUTH_GET_AVAILABLE_STATUS);
127
128 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
129 EXPECT_TRUE(data.WriteBool(true));
130 EXPECT_TRUE(data.WriteInt32(testUserId));
131 EXPECT_TRUE(data.WriteInt32(testAuthType));
132 EXPECT_TRUE(data.WriteUint32(testAuthTrustLevel));
133 EXPECT_TRUE(data.WriteInt32(testApiVersion));
134
135 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
136 int32_t result = FAIL;
137 EXPECT_TRUE(reply.ReadInt32(result));
138 EXPECT_EQ(result, SUCCESS);
139 }
140
141 HWTEST_F(UserAuthStubTest, UserAuthStubGetPropertyStub001, TestSize.Level0)
142 {
143 MessageParcel data;
144 MessageParcel reply;
145 MessageOption option(MessageOption::TF_SYNC);
146 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_PROPERTY;
147
148 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
149
150 MockUserAuthService service;
151 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
152 }
153
154 HWTEST_F(UserAuthStubTest, UserAuthStubGetPropertyStub002, TestSize.Level0)
155 {
156 int32_t testUserId = 1232666;
157 AuthType testAuthType = FACE;
158 std::vector<Attributes::AttributeKey> testAttrKeys = {Attributes::ATTR_RESULT_CODE, Attributes::ATTR_SIGNATURE,
159 Attributes::ATTR_SCHEDULE_MODE};
160 std::vector<uint32_t> tempKeys;
161 for (auto &attrKey : testAttrKeys) {
162 tempKeys.push_back(static_cast<uint32_t>(attrKey));
163 }
164 sptr<MockGetExecutorPropertyCallback> callback(new (std::nothrow) MockGetExecutorPropertyCallback());
165 EXPECT_NE(callback, nullptr);
166 MockUserAuthService service;
167 EXPECT_CALL(service, GetProperty(_, _, _, _)).Times(1);
168 ON_CALL(service, GetProperty)
169 .WillByDefault(
170 [&testUserId, &testAuthType, &testAttrKeys](int32_t userId, AuthType authType,
171 const std::vector<Attributes::AttributeKey> &keys,
__anon5dedf9810302(int32_t userId, AuthType authType, const std::vector<Attributes::AttributeKey> &keys, sptr<GetExecutorPropertyCallbackInterface> &callback) 172 sptr<GetExecutorPropertyCallbackInterface> &callback) {
173 EXPECT_EQ(userId, testUserId);
174 EXPECT_EQ(authType, testAuthType);
175 EXPECT_THAT(keys, ElementsAreArray(testAttrKeys));
176 if (callback != nullptr) {
177 Attributes attr;
178 callback->OnGetExecutorPropertyResult(SUCCESS, attr);
179 }
180 }
181 );
182 EXPECT_CALL(*callback, OnGetExecutorPropertyResult(_, _)).Times(1);
183
184 MessageParcel data;
185 MessageParcel reply;
186 MessageOption option(MessageOption::TF_SYNC);
187 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_PROPERTY;
188
189 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
190 EXPECT_TRUE(data.WriteInt32(testUserId));
191 EXPECT_TRUE(data.WriteInt32(testAuthType));
192 EXPECT_TRUE(data.WriteUInt32Vector(tempKeys));
193 EXPECT_NE(callback->AsObject(), nullptr);
194 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
195
196 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
197 }
198
199 HWTEST_F(UserAuthStubTest, UserAuthStubSetPropertyStub001, TestSize.Level0)
200 {
201 MessageParcel data;
202 MessageParcel reply;
203 MessageOption option(MessageOption::TF_SYNC);
204 uint32_t code = UserAuthInterfaceCode::USER_AUTH_SET_PROPERTY;
205
206 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
207
208 MockUserAuthService service;
209 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
210 }
211
212 HWTEST_F(UserAuthStubTest, UserAuthStubSetPropertyStub002, TestSize.Level0)
213 {
214 int32_t testUserId = 132282;
215 AuthType testAuthType = FACE;
216 Attributes attributes;
217
218 uint64_t testTemplateId = 3364734;
219 EXPECT_TRUE(attributes.SetUint64Value(Attributes::ATTR_TEMPLATE_ID, testTemplateId));
220
221 sptr<MockSetExecutorPropertyCallback> callback(new (std::nothrow) MockSetExecutorPropertyCallback());
222 EXPECT_NE(callback, nullptr);
223 MockUserAuthService service;
224 EXPECT_CALL(service, SetProperty(_, _, _, _)).Times(1);
225 ON_CALL(service, SetProperty)
226 .WillByDefault(
227 [&testUserId, &testAuthType, &testTemplateId](int32_t userId, AuthType authType,
__anon5dedf9810402(int32_t userId, AuthType authType, const Attributes &attributes, sptr<SetExecutorPropertyCallbackInterface> &callback) 228 const Attributes &attributes, sptr<SetExecutorPropertyCallbackInterface> &callback) {
229 EXPECT_EQ(userId, testUserId);
230 EXPECT_EQ(authType, testAuthType);
231 uint64_t tempTemplateId = 0;
232 EXPECT_TRUE(attributes.GetUint64Value(Attributes::ATTR_TEMPLATE_ID, tempTemplateId));
233 EXPECT_EQ(tempTemplateId, testTemplateId);
234 if (callback != nullptr) {
235 callback->OnSetExecutorPropertyResult(SUCCESS);
236 }
237 }
238 );
239 EXPECT_CALL(*callback, OnSetExecutorPropertyResult(_)).Times(1);
240
241 MessageParcel data;
242 MessageParcel reply;
243 MessageOption option(MessageOption::TF_SYNC);
244 uint32_t code = UserAuthInterfaceCode::USER_AUTH_SET_PROPERTY;
245
246 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
247 EXPECT_TRUE(data.WriteInt32(testUserId));
248 EXPECT_TRUE(data.WriteInt32(testAuthType));
249 EXPECT_TRUE(data.WriteUInt8Vector(attributes.Serialize()));
250 EXPECT_NE(callback->AsObject(), nullptr);
251 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
252
253 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
254 }
255
256 HWTEST_F(UserAuthStubTest, UserAuthStubAuthStub001, TestSize.Level0)
257 {
258 MessageParcel data;
259 MessageParcel reply;
260 MessageOption option(MessageOption::TF_SYNC);
261 uint32_t code = UserAuthInterfaceCode::USER_AUTH_AUTH;
262
263 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
264
265 MockUserAuthService service;
266 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
267 }
268
269 HWTEST_F(UserAuthStubTest, UserAuthStubAuthStub002, TestSize.Level0)
270 {
271 int32_t testUserId = 3467;
272 int32_t testApiVersion = 9;
273 std::vector<uint8_t> testChallenge = {1, 2, 4, 5};
274 AuthType testAuthType = FACE;
275 AuthTrustLevel testAtl = ATL2;
276 uint64_t testContextId = 2346782;
277
278 sptr<MockUserAuthCallback> callback(new (std::nothrow) MockUserAuthCallback());
279 EXPECT_NE(callback, nullptr);
280 MockUserAuthService service;
281 EXPECT_CALL(service, Auth(_, _, _, _, _)).Times(1);
282 ON_CALL(service, Auth)
283 .WillByDefault(
284 [&testChallenge, &testAuthType, &testAtl, &testContextId, &testApiVersion](int32_t apiVersion,
285 const std::vector<uint8_t> &challenge, AuthType authType, AuthTrustLevel authTrustLevel,
__anon5dedf9810502(int32_t apiVersion, const std::vector<uint8_t> &challenge, AuthType authType, AuthTrustLevel authTrustLevel, sptr<UserAuthCallbackInterface> &callback) 286 sptr<UserAuthCallbackInterface> &callback) {
287 EXPECT_EQ(apiVersion, testApiVersion);
288 EXPECT_THAT(challenge, ElementsAreArray(testChallenge));
289 EXPECT_EQ(authType, testAuthType);
290 EXPECT_EQ(authTrustLevel, testAtl);
291 if (callback != nullptr) {
292 Attributes attr;
293 callback->OnResult(SUCCESS, attr);
294 }
295 return testContextId;
296 }
297 );
298 EXPECT_CALL(*callback, OnResult(_, _)).Times(1);
299
300 MessageParcel data;
301 MessageParcel reply;
302 MessageOption option(MessageOption::TF_SYNC);
303 uint32_t code = UserAuthInterfaceCode::USER_AUTH_AUTH;
304 std::vector<int32_t> testAuthTypeInts;
305 testAuthTypeInts.push_back(static_cast<AuthType>(1));
306 uint32_t authIntent = 0;
307 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
308 EXPECT_TRUE(data.WriteInt32(testApiVersion));
309 EXPECT_TRUE(data.WriteInt32(testUserId));
310 EXPECT_TRUE(data.WriteUInt8Vector(testChallenge));
311 EXPECT_TRUE(data.WriteInt32(testAuthType));
312 EXPECT_TRUE(data.WriteInt32Vector(testAuthTypeInts));
313 EXPECT_TRUE(data.WriteUint32(testAtl));
314 EXPECT_TRUE(data.WriteUint32(authIntent));
315 EXPECT_NE(callback->AsObject(), nullptr);
316 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
317
318 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
319 uint64_t contextId = 0;
320 EXPECT_TRUE(reply.ReadUint64(contextId));
321 EXPECT_EQ(contextId, testContextId);
322 }
323
324 HWTEST_F(UserAuthStubTest, UserAuthStubAuthUserStub001, TestSize.Level0)
325 {
326 MessageParcel data;
327 MessageParcel reply;
328 MessageOption option(MessageOption::TF_SYNC);
329 uint32_t code = UserAuthInterfaceCode::USER_AUTH_AUTH_USER;
330
331 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
332
333 MockUserAuthService service;
334 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
335 }
336
337 HWTEST_F(UserAuthStubTest, UserAuthStubAuthUserStub002, TestSize.Level0)
338 {
339 int32_t testUserId = 3467;
340 std::vector<uint8_t> testChallenge = {1, 2, 5, 9};
341 AuthType testAuthType = FACE;
342 AuthTrustLevel testAtl = ATL2;
343 uint64_t testContextId = 2346728;
344
345 sptr<MockUserAuthCallback> callback(new (std::nothrow) MockUserAuthCallback());
346 EXPECT_NE(callback, nullptr);
347 MockUserAuthService service;
348 EXPECT_CALL(service, AuthUser(_, _, _)).Times(1);
349 ON_CALL(service, AuthUser)
350 .WillByDefault(
351 [&testUserId, &testChallenge, &testAuthType, &testAtl, &testContextId](AuthParamInner &authParam,
__anon5dedf9810602(AuthParamInner &authParam, std::optional<RemoteAuthParam> &remoteAuthParam, sptr<UserAuthCallbackInterface> &callback) 352 std::optional<RemoteAuthParam> &remoteAuthParam, sptr<UserAuthCallbackInterface> &callback) {
353 EXPECT_EQ(authParam.userId, testUserId);
354 EXPECT_THAT(authParam.challenge, ElementsAreArray(testChallenge));
355 EXPECT_EQ(authParam.authType, testAuthType);
356 EXPECT_EQ(authParam.authTrustLevel, testAtl);
357 if (callback != nullptr) {
358 Attributes attr;
359 callback->OnResult(SUCCESS, attr);
360 }
361 return testContextId;
362 }
363 );
364 EXPECT_CALL(*callback, OnResult(_, _)).Times(1);
365
366 MessageParcel data;
367 MessageParcel reply;
368 MessageOption option(MessageOption::TF_SYNC);
369 uint32_t code = UserAuthInterfaceCode::USER_AUTH_AUTH_USER;
370 uint32_t testAuthTrustLevel = 0;
371 std::vector<int32_t> testAuthTypeInts;
372 testAuthTypeInts.push_back(static_cast<AuthType>(1));
373 uint32_t authIntent = 0;
374 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
375 EXPECT_TRUE(data.WriteInt32(testUserId));
376 EXPECT_TRUE(data.WriteUInt8Vector(testChallenge));
377 EXPECT_TRUE(data.WriteInt32(testAuthType));
378 EXPECT_TRUE(data.WriteInt32Vector(testAuthTypeInts));
379 EXPECT_TRUE(data.WriteUint32(testAtl));
380 EXPECT_TRUE(data.WriteUint32(testAuthTrustLevel));
381 EXPECT_TRUE(data.WriteUint32(authIntent));
382 EXPECT_NE(callback->AsObject(), nullptr);
383 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
384
385 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
386 uint64_t contextId = 0;
387 EXPECT_TRUE(reply.ReadUint64(contextId));
388 EXPECT_EQ(contextId, testContextId);
389 }
390
391 HWTEST_F(UserAuthStubTest, UserAuthStubIdentifyStub001, TestSize.Level0)
392 {
393 MessageParcel data;
394 MessageParcel reply;
395 MessageOption option(MessageOption::TF_SYNC);
396 uint32_t code = UserAuthInterfaceCode::USER_AUTH_IDENTIFY;
397
398 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
399
400 MockUserAuthService service;
401 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
402 }
403
404 HWTEST_F(UserAuthStubTest, UserAuthStubIdentifyStub002, TestSize.Level0)
405 {
406 std::vector<uint8_t> testChallenge = {1, 2, 5, 8, 9};
407 AuthType testAuthType = FACE;
408 uint64_t testContextId = 76374284;
409
410 sptr<MockUserAuthCallback> callback(new (std::nothrow) MockUserAuthCallback());
411 EXPECT_NE(callback, nullptr);
412 MockUserAuthService service;
413 EXPECT_CALL(service, Identify(_, _, _)).Times(1);
414 ON_CALL(service, Identify)
415 .WillByDefault(
416 [&testChallenge, &testAuthType, &testContextId](const std::vector<uint8_t> &challenge, AuthType authType,
__anon5dedf9810702(const std::vector<uint8_t> &challenge, AuthType authType, sptr<UserAuthCallbackInterface> &callback) 417 sptr<UserAuthCallbackInterface> &callback) {
418 EXPECT_THAT(challenge, ElementsAreArray(testChallenge));
419 EXPECT_EQ(authType, testAuthType);
420 if (callback != nullptr) {
421 Attributes attr;
422 callback->OnResult(SUCCESS, attr);
423 }
424 return testContextId;
425 }
426 );
427 EXPECT_CALL(*callback, OnResult(_, _)).Times(1);
428
429 MessageParcel data;
430 MessageParcel reply;
431 MessageOption option(MessageOption::TF_SYNC);
432 uint32_t code = UserAuthInterfaceCode::USER_AUTH_IDENTIFY;
433
434 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
435 EXPECT_TRUE(data.WriteUInt8Vector(testChallenge));
436 EXPECT_TRUE(data.WriteInt32(testAuthType));
437 EXPECT_NE(callback->AsObject(), nullptr);
438 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
439
440 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
441 uint64_t contextId = 0;
442 EXPECT_TRUE(reply.ReadUint64(contextId));
443 EXPECT_EQ(contextId, testContextId);
444 }
445
446 HWTEST_F(UserAuthStubTest, UserAuthStubCancelAuthOrIdentifyStub001, TestSize.Level0)
447 {
448 MessageParcel data;
449 MessageParcel reply;
450 MessageOption option(MessageOption::TF_SYNC);
451 uint32_t code = UserAuthInterfaceCode::USER_AUTH_CANCEL_AUTH;
452
453 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
454
455 MockUserAuthService service;
456 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
457 }
458
459 HWTEST_F(UserAuthStubTest, UserAuthStubCancelAuthOrIdentifyStub002, TestSize.Level0)
460 {
461 uint64_t testContextId = 9346248;
462
463 MockUserAuthService service;
464 EXPECT_CALL(service, CancelAuthOrIdentify(_)).Times(1);
465 ON_CALL(service, CancelAuthOrIdentify)
466 .WillByDefault(
__anon5dedf9810802(uint64_t contextId) 467 [&testContextId](uint64_t contextId) {
468 EXPECT_EQ(contextId, testContextId);
469 return SUCCESS;
470 }
471 );
472
473 MessageParcel data;
474 MessageParcel reply;
475 MessageOption option(MessageOption::TF_SYNC);
476 uint32_t code = UserAuthInterfaceCode::USER_AUTH_CANCEL_AUTH;
477
478 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
479 EXPECT_TRUE(data.WriteUint64(testContextId));
480
481 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
482 int32_t result = FAIL;
483 EXPECT_TRUE(reply.ReadInt32(result));
484 EXPECT_EQ(result, SUCCESS);
485 }
486
487 HWTEST_F(UserAuthStubTest, UserAuthStubGetVersionStub, TestSize.Level0)
488 {
489 int32_t testVersion = 1000;
490
491 MockUserAuthService service;
492 EXPECT_CALL(service, GetVersion(_)).Times(1);
493 ON_CALL(service, GetVersion)
494 .WillByDefault(
__anon5dedf9810902(int32_t &version) 495 [&testVersion](int32_t &version) {
496 version = testVersion;
497 return SUCCESS;
498 }
499 );
500
501 MessageParcel data;
502 MessageParcel reply;
503 MessageOption option(MessageOption::TF_SYNC);
504 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_VERSION;
505
506 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
507
508 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
509 int32_t version = -1;
510 EXPECT_TRUE(reply.ReadInt32(version));
511 EXPECT_EQ(version, testVersion);
512 int32_t result;
513 EXPECT_TRUE(reply.ReadInt32(result));
514 EXPECT_EQ(result, SUCCESS);
515 }
516
517 HWTEST_F(UserAuthStubTest, UserAuthStubRegistUserAuthSuccessEventListenerStub, TestSize.Level0)
518 {
519 MockUserAuthService service;
520 sptr<MockAuthEventListenerService> callback(new (std::nothrow) MockAuthEventListenerService());
521 EXPECT_NE(callback, nullptr);
522 EXPECT_CALL(service, RegistUserAuthSuccessEventListener(_, _)).Times(1);
523 ON_CALL(service, RegistUserAuthSuccessEventListener)
524 .WillByDefault(
__anon5dedf9810a02(const std::vector<AuthType> &authType, const sptr<AuthEventListenerInterface> &callback) 525 [](const std::vector<AuthType> &authType, const sptr<AuthEventListenerInterface> &callback) {
526 return SUCCESS;
527 }
528 );
529
530 MessageParcel data;
531 MessageParcel reply;
532 MessageOption option(MessageOption::TF_SYNC);
533 uint32_t code = UserAuthInterfaceCode::USER_AUTH_REG_EVENT_LISTENER;
534
535 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
536 std::vector<int32_t> authType;
537 authType.push_back(static_cast<int32_t>(PIN));
538 authType.push_back(static_cast<int32_t>(FACE));
539 authType.push_back(static_cast<int32_t>(FINGERPRINT));
540
541 EXPECT_TRUE(data.WriteInt32Vector(authType));
542 EXPECT_NE(callback->AsObject(), nullptr);
543 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
544 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
545 int32_t result;
546 EXPECT_TRUE(reply.ReadInt32(result));
547 EXPECT_EQ(result, SUCCESS);
548 }
549
550 HWTEST_F(UserAuthStubTest, UserAuthStubUnRegistUserAuthSuccessEventListenerStub, TestSize.Level0)
551 {
552 MockUserAuthService service;
553 sptr<MockAuthEventListenerService> callback(new (std::nothrow) MockAuthEventListenerService());
554 EXPECT_NE(callback, nullptr);
555 EXPECT_CALL(service, UnRegistUserAuthSuccessEventListener(_)).Times(1);
556 ON_CALL(service, UnRegistUserAuthSuccessEventListener)
557 .WillByDefault(
__anon5dedf9810b02(const sptr<AuthEventListenerInterface> &callback) 558 [](const sptr<AuthEventListenerInterface> &callback) {
559 return SUCCESS;
560 }
561 );
562
563 MessageParcel data;
564 MessageParcel reply;
565 MessageOption option(MessageOption::TF_SYNC);
566 uint32_t code = UserAuthInterfaceCode::USER_AUTH_UNREG_EVENT_LISTENER;
567
568 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
569 EXPECT_NE(callback->AsObject(), nullptr);
570 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
571 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
572 int32_t result;
573 EXPECT_TRUE(reply.ReadInt32(result));
574 EXPECT_EQ(result, SUCCESS);
575 }
576
577 HWTEST_F(UserAuthStubTest, UserAuthStubGetPropertyByIdStub001, TestSize.Level0)
578 {
579 MessageParcel data;
580 MessageParcel reply;
581 MessageOption option(MessageOption::TF_SYNC);
582 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_PROPERTY_BY_ID;
583
584 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
585
586 MockUserAuthService service;
587 EXPECT_EQ(READ_PARCEL_ERROR, service.OnRemoteRequest(code, data, reply, option));
588 }
589
590 HWTEST_F(UserAuthStubTest, UserAuthStubGetPropertyByIdStub002, TestSize.Level0)
591 {
592 uint64_t testCredentialId = 1;
593 std::vector<Attributes::AttributeKey> testAttrKeys = {Attributes::ATTR_RESULT_CODE, Attributes::ATTR_SIGNATURE,
594 Attributes::ATTR_SCHEDULE_MODE};
595 std::vector<uint32_t> tempKeys;
596 for (auto &attrKey : testAttrKeys) {
597 tempKeys.push_back(static_cast<uint32_t>(attrKey));
598 }
599 sptr<MockGetExecutorPropertyCallback> callback(new (std::nothrow) MockGetExecutorPropertyCallback());
600 EXPECT_NE(callback, nullptr);
601 MockUserAuthService service;
602 EXPECT_CALL(service, GetPropertyById(_, _, _)).Times(1);
603 ON_CALL(service, GetPropertyById)
604 .WillByDefault(
605 [&testCredentialId, &testAttrKeys](uint64_t credentialId, const std::vector<Attributes::AttributeKey> &keys,
__anon5dedf9810c02(uint64_t credentialId, const std::vector<Attributes::AttributeKey> &keys, sptr<GetExecutorPropertyCallbackInterface> &callback) 606 sptr<GetExecutorPropertyCallbackInterface> &callback) {
607 EXPECT_EQ(credentialId, testCredentialId);
608 EXPECT_THAT(keys, ElementsAreArray(testAttrKeys));
609 if (callback != nullptr) {
610 Attributes attr;
611 callback->OnGetExecutorPropertyResult(SUCCESS, attr);
612 }
613 }
614 );
615 EXPECT_CALL(*callback, OnGetExecutorPropertyResult(_, _)).Times(1);
616
617 MessageParcel data;
618 MessageParcel reply;
619 MessageOption option(MessageOption::TF_SYNC);
620 uint32_t code = UserAuthInterfaceCode::USER_AUTH_GET_PROPERTY_BY_ID;
621
622 EXPECT_TRUE(data.WriteInterfaceToken(UserAuthInterface::GetDescriptor()));
623 EXPECT_TRUE(data.WriteUint64(testCredentialId));
624 EXPECT_TRUE(data.WriteUInt32Vector(tempKeys));
625 EXPECT_NE(callback->AsObject(), nullptr);
626 EXPECT_TRUE(data.WriteRemoteObject(callback->AsObject()));
627
628 EXPECT_EQ(SUCCESS, service.OnRemoteRequest(code, data, reply, option));
629 }
630 } // namespace UserAuth
631 } // namespace UserIam
632 } // namespace OHOS