19762338dSopenharmony_ci/* 29762338dSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 39762338dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 49762338dSopenharmony_ci * you may not use this file except in compliance with the License. 59762338dSopenharmony_ci * You may obtain a copy of the License at 69762338dSopenharmony_ci * 79762338dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 89762338dSopenharmony_ci * 99762338dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 109762338dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 119762338dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 129762338dSopenharmony_ci * See the License for the specific language governing permissions and 139762338dSopenharmony_ci * limitations under the License. 149762338dSopenharmony_ci */ 159762338dSopenharmony_ci 169762338dSopenharmony_ci#include "face_auth_hdi_test.h" 179762338dSopenharmony_ci 189762338dSopenharmony_ci#include <hdf_base.h> 199762338dSopenharmony_ci 209762338dSopenharmony_ci#include "iam_hat_test.h" 219762338dSopenharmony_ci#include "iconsumer_surface.h" 229762338dSopenharmony_ci 239762338dSopenharmony_ci#define LOG_LABEL OHOS::UserIam::Common::LABEL_FACE_AUTH_IMPL 249762338dSopenharmony_ci 259762338dSopenharmony_ciusing namespace std; 269762338dSopenharmony_ciusing namespace testing::ext; 279762338dSopenharmony_ciusing namespace OHOS; 289762338dSopenharmony_ciusing namespace OHOS::UserIam::Common; 299762338dSopenharmony_ciusing namespace OHOS::HDI::FaceAuth; 309762338dSopenharmony_ci 319762338dSopenharmony_cistatic AllInOneExecutorImpl g_executorImpl; 329762338dSopenharmony_cistatic OHOS::Parcel parcel; 339762338dSopenharmony_ci 349762338dSopenharmony_civoid UserIamFaceAuthTest::SetUpTestCase() 359762338dSopenharmony_ci{ 369762338dSopenharmony_ci} 379762338dSopenharmony_ci 389762338dSopenharmony_civoid UserIamFaceAuthTest::TearDownTestCase() 399762338dSopenharmony_ci{ 409762338dSopenharmony_ci} 419762338dSopenharmony_ci 429762338dSopenharmony_civoid UserIamFaceAuthTest::SetUp() 439762338dSopenharmony_ci{ 449762338dSopenharmony_ci} 459762338dSopenharmony_ci 469762338dSopenharmony_civoid UserIamFaceAuthTest::TearDown() 479762338dSopenharmony_ci{ 489762338dSopenharmony_ci} 499762338dSopenharmony_ci 509762338dSopenharmony_ciclass DummyIExecutorCallback : public IExecutorCallback { 519762338dSopenharmony_cipublic: 529762338dSopenharmony_ci DummyIExecutorCallback(int32_t result, int32_t tip, int32_t message) : result_(result), tip_(tip), message_(message) 539762338dSopenharmony_ci { 549762338dSopenharmony_ci } 559762338dSopenharmony_ci 569762338dSopenharmony_ci int32_t OnResult(int32_t result, const std::vector<uint8_t> &extraInfo) override 579762338dSopenharmony_ci { 589762338dSopenharmony_ci cout << "result is " << result << " extraInfo len is " << extraInfo.size() << endl; 599762338dSopenharmony_ci return result_; 609762338dSopenharmony_ci } 619762338dSopenharmony_ci 629762338dSopenharmony_ci int32_t OnTip(int32_t tip, const std::vector<uint8_t> &extraInfo) override 639762338dSopenharmony_ci { 649762338dSopenharmony_ci cout << "tip is " << tip << " extraInfo len is " << extraInfo.size() << endl; 659762338dSopenharmony_ci return tip_; 669762338dSopenharmony_ci } 679762338dSopenharmony_ci 689762338dSopenharmony_ci int32_t OnMessage(int32_t destRole, const std::vector<uint8_t> &msg) override 699762338dSopenharmony_ci { 709762338dSopenharmony_ci cout << "destRole is " << destRole << " msg len is " << msg.size() << endl; 719762338dSopenharmony_ci return message_; 729762338dSopenharmony_ci } 739762338dSopenharmony_ci 749762338dSopenharmony_ciprivate: 759762338dSopenharmony_ci int32_t result_; 769762338dSopenharmony_ci int32_t tip_; 779762338dSopenharmony_ci int32_t message_; 789762338dSopenharmony_ci}; 799762338dSopenharmony_ci 809762338dSopenharmony_ciclass DummyISaCommandCallback : public ISaCommandCallback { 819762338dSopenharmony_cipublic: 829762338dSopenharmony_ci explicit DummyISaCommandCallback(int32_t result) : result_(result) 839762338dSopenharmony_ci { 849762338dSopenharmony_ci } 859762338dSopenharmony_ci 869762338dSopenharmony_ci int32_t OnSaCommands(const std::vector<SaCommand> &commands) override 879762338dSopenharmony_ci { 889762338dSopenharmony_ci return result_; 899762338dSopenharmony_ci } 909762338dSopenharmony_ci 919762338dSopenharmony_ciprivate: 929762338dSopenharmony_ci int32_t result_; 939762338dSopenharmony_ci}; 949762338dSopenharmony_ci 959762338dSopenharmony_cistatic void FillTestExecutorInfo(Parcel &parcel, ExecutorInfo &executorInfo) 969762338dSopenharmony_ci{ 979762338dSopenharmony_ci executorInfo.sensorId = parcel.ReadUint16(); 989762338dSopenharmony_ci executorInfo.executorMatcher = parcel.ReadUint32(); 999762338dSopenharmony_ci executorInfo.executorRole = static_cast<ExecutorRole>(parcel.ReadInt32()); 1009762338dSopenharmony_ci executorInfo.authType = static_cast<AuthType>(parcel.ReadInt32()); 1019762338dSopenharmony_ci executorInfo.esl = static_cast<ExecutorSecureLevel>(parcel.ReadInt32()); 1029762338dSopenharmony_ci executorInfo.maxTemplateAcl = parcel.ReadInt32(); 1039762338dSopenharmony_ci FillTestUint8Vector(parcel, executorInfo.publicKey); 1049762338dSopenharmony_ci FillTestUint8Vector(parcel, executorInfo.extraInfo); 1059762338dSopenharmony_ci cout << "success" << endl; 1069762338dSopenharmony_ci} 1079762338dSopenharmony_ci 1089762338dSopenharmony_cistatic void FillTestIExecutorCallback(Parcel &parcel, sptr<IExecutorCallback> &callbackObj) 1099762338dSopenharmony_ci{ 1109762338dSopenharmony_ci bool isNull = parcel.ReadBool(); 1119762338dSopenharmony_ci if (isNull) { 1129762338dSopenharmony_ci callbackObj = nullptr; 1139762338dSopenharmony_ci } else { 1149762338dSopenharmony_ci callbackObj = 1159762338dSopenharmony_ci new (std::nothrow) DummyIExecutorCallback(parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadInt32()); 1169762338dSopenharmony_ci if (callbackObj == nullptr) { 1179762338dSopenharmony_ci cout << "callbackObj construct fail" << endl; 1189762338dSopenharmony_ci } 1199762338dSopenharmony_ci } 1209762338dSopenharmony_ci cout << "success" << endl; 1219762338dSopenharmony_ci} 1229762338dSopenharmony_ci 1239762338dSopenharmony_civoid FillTestProperty(Parcel &parcel, Property &property) 1249762338dSopenharmony_ci{ 1259762338dSopenharmony_ci property.authSubType = parcel.ReadUint64(); 1269762338dSopenharmony_ci property.lockoutDuration = parcel.ReadInt32(); 1279762338dSopenharmony_ci property.remainAttempts = parcel.ReadInt32(); 1289762338dSopenharmony_ci FillTestString(parcel, property.enrollmentProgress); 1299762338dSopenharmony_ci FillTestString(parcel, property.sensorInfo); 1309762338dSopenharmony_ci 1319762338dSopenharmony_ci cout << "success" << endl; 1329762338dSopenharmony_ci} 1339762338dSopenharmony_ci 1349762338dSopenharmony_civoid FillTestISaCommandCallback(Parcel &parcel, sptr<ISaCommandCallback> &callbackObj) 1359762338dSopenharmony_ci{ 1369762338dSopenharmony_ci bool isNull = parcel.ReadBool(); 1379762338dSopenharmony_ci if (isNull) { 1389762338dSopenharmony_ci callbackObj = nullptr; 1399762338dSopenharmony_ci } else { 1409762338dSopenharmony_ci callbackObj = new (std::nothrow) DummyISaCommandCallback(parcel.ReadInt32()); 1419762338dSopenharmony_ci if (callbackObj == nullptr) { 1429762338dSopenharmony_ci cout << "callbackObj construct fail" << endl; 1439762338dSopenharmony_ci } 1449762338dSopenharmony_ci } 1459762338dSopenharmony_ci cout << "success" << endl; 1469762338dSopenharmony_ci} 1479762338dSopenharmony_ci 1489762338dSopenharmony_ci/** 1499762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0101 1509762338dSopenharmony_ci * @tc.name: Test SendCommand 1519762338dSopenharmony_ci * @tc.size: MediumTest 1529762338dSopenharmony_ci * @tc.type: Function 1539762338dSopenharmony_ci * @tc.level: Level1 1549762338dSopenharmony_ci */ 1559762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0101, Function | MediumTest | Level1) 1569762338dSopenharmony_ci{ 1579762338dSopenharmony_ci cout << "start test SendCommand" << endl; 1589762338dSopenharmony_ci uint8_t commandId = parcel.ReadUint8(); 1599762338dSopenharmony_ci cout << "commandId is " << commandId << endl; 1609762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 1619762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 1629762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 1639762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 1649762338dSopenharmony_ci int32_t ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 1659762338dSopenharmony_ci cout << "ret is " << ret << endl; 1669762338dSopenharmony_ci EXPECT_EQ(ret, 0); 1679762338dSopenharmony_ci} 1689762338dSopenharmony_ci 1699762338dSopenharmony_ci/** 1709762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0102 1719762338dSopenharmony_ci * @tc.name: Test Cancel 1729762338dSopenharmony_ci * @tc.size: MediumTest 1739762338dSopenharmony_ci * @tc.type: Function 1749762338dSopenharmony_ci * @tc.level: Level1 1759762338dSopenharmony_ci */ 1769762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0102, Function | MediumTest | Level1) 1779762338dSopenharmony_ci{ 1789762338dSopenharmony_ci cout << "start test Cancel" << endl; 1799762338dSopenharmony_ci uint64_t scheduleId = parcel.ReadUint64(); 1809762338dSopenharmony_ci int32_t ret = g_executorImpl.Cancel(scheduleId); 1819762338dSopenharmony_ci cout << "ret is " << ret << endl; 1829762338dSopenharmony_ci EXPECT_EQ(ret, 0); 1839762338dSopenharmony_ci} 1849762338dSopenharmony_ci 1859762338dSopenharmony_ci/** 1869762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0103 1879762338dSopenharmony_ci * @tc.name: Test Delete 1889762338dSopenharmony_ci * @tc.size: MediumTest 1899762338dSopenharmony_ci * @tc.type: Function 1909762338dSopenharmony_ci * @tc.level: Level1 1919762338dSopenharmony_ci */ 1929762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0103, Function | MediumTest | Level1) 1939762338dSopenharmony_ci{ 1949762338dSopenharmony_ci cout << "start test Delete" << endl; 1959762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 1969762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 1979762338dSopenharmony_ci int32_t ret = g_executorImpl.Delete(templateIdList); 1989762338dSopenharmony_ci cout << "ret is " << ret << endl; 1999762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2009762338dSopenharmony_ci} 2019762338dSopenharmony_ci 2029762338dSopenharmony_ci/** 2039762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0104 2049762338dSopenharmony_ci * @tc.name: Test GetExecutorInfo 2059762338dSopenharmony_ci * @tc.size: MediumTest 2069762338dSopenharmony_ci * @tc.type: Function 2079762338dSopenharmony_ci * @tc.level: Level1 2089762338dSopenharmony_ci */ 2099762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0104, Function | MediumTest | Level1) 2109762338dSopenharmony_ci{ 2119762338dSopenharmony_ci cout << "start test GetExecutorInfo" << endl; 2129762338dSopenharmony_ci ExecutorInfo executorInfo; 2139762338dSopenharmony_ci FillTestExecutorInfo(parcel, executorInfo); 2149762338dSopenharmony_ci int32_t ret = g_executorImpl.GetExecutorInfo(executorInfo); 2159762338dSopenharmony_ci cout << "ret is " << ret << endl; 2169762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2179762338dSopenharmony_ci} 2189762338dSopenharmony_ci 2199762338dSopenharmony_ci/** 2209762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0106 2219762338dSopenharmony_ci * @tc.name: Test OnRegisterFinish 2229762338dSopenharmony_ci * @tc.size: MediumTest 2239762338dSopenharmony_ci * @tc.type: Function 2249762338dSopenharmony_ci * @tc.level: Level1 2259762338dSopenharmony_ci */ 2269762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0106, Function | MediumTest | Level1) 2279762338dSopenharmony_ci{ 2289762338dSopenharmony_ci cout << "start test OnRegisterFinish" << endl; 2299762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 2309762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 2319762338dSopenharmony_ci std::vector<uint8_t> frameworkPublicKey; 2329762338dSopenharmony_ci FillTestUint8Vector(parcel, frameworkPublicKey); 2339762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2349762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2359762338dSopenharmony_ci int32_t ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 2369762338dSopenharmony_ci cout << "ret is " << ret << endl; 2379762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2389762338dSopenharmony_ci} 2399762338dSopenharmony_ci 2409762338dSopenharmony_ci/** 2419762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0107 2429762338dSopenharmony_ci * @tc.name: Test Enroll 2439762338dSopenharmony_ci * @tc.size: MediumTest 2449762338dSopenharmony_ci * @tc.type: Function 2459762338dSopenharmony_ci * @tc.level: Level1 2469762338dSopenharmony_ci */ 2479762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0107, Function | MediumTest | Level1) 2489762338dSopenharmony_ci{ 2499762338dSopenharmony_ci cout << "start test Enroll" << endl; 2509762338dSopenharmony_ci uint64_t scheduleId = parcel.ReadUint64(); 2519762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2529762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2539762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2549762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2559762338dSopenharmony_ci int32_t ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2569762338dSopenharmony_ci cout << "ret is " << ret << endl; 2579762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2589762338dSopenharmony_ci} 2599762338dSopenharmony_ci 2609762338dSopenharmony_ci/** 2619762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0108 2629762338dSopenharmony_ci * @tc.name: Test Authenticate 2639762338dSopenharmony_ci * @tc.size: MediumTest 2649762338dSopenharmony_ci * @tc.type: Function 2659762338dSopenharmony_ci * @tc.level: Level1 2669762338dSopenharmony_ci */ 2679762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0108, Function | MediumTest | Level1) 2689762338dSopenharmony_ci{ 2699762338dSopenharmony_ci cout << "start test Authenticate" << endl; 2709762338dSopenharmony_ci uint64_t scheduleId = parcel.ReadUint64(); 2719762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 2729762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 2739762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2749762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2759762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2769762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2779762338dSopenharmony_ci int32_t ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 2789762338dSopenharmony_ci cout << "ret is " << ret << endl; 2799762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2809762338dSopenharmony_ci} 2819762338dSopenharmony_ci 2829762338dSopenharmony_ci/** 2839762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0109 2849762338dSopenharmony_ci * @tc.name: Test Identify 2859762338dSopenharmony_ci * @tc.size: MediumTest 2869762338dSopenharmony_ci * @tc.type: Function 2879762338dSopenharmony_ci * @tc.level: Level1 2889762338dSopenharmony_ci */ 2899762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0109, Function | MediumTest | Level1) 2909762338dSopenharmony_ci{ 2919762338dSopenharmony_ci cout << "start test Identify" << endl; 2929762338dSopenharmony_ci uint64_t scheduleId = parcel.ReadUint64(); 2939762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2949762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2959762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2969762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2979762338dSopenharmony_ci int32_t ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 2989762338dSopenharmony_ci cout << "ret is " << ret << endl; 2999762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3009762338dSopenharmony_ci} 3019762338dSopenharmony_ci 3029762338dSopenharmony_ci/** 3039762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0110 3049762338dSopenharmony_ci * @tc.name: Test GetExecutorList 3059762338dSopenharmony_ci * @tc.size: MediumTest 3069762338dSopenharmony_ci * @tc.type: Function 3079762338dSopenharmony_ci * @tc.level: Level1 3089762338dSopenharmony_ci */ 3099762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0110, Function | MediumTest | Level1) 3109762338dSopenharmony_ci{ 3119762338dSopenharmony_ci cout << "start test GetExecutorList" << endl; 3129762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 3139762338dSopenharmony_ci std::vector<sptr<IAllInOneExecutor>> executorList; 3149762338dSopenharmony_ci int32_t ret = faceauth_Interface.GetExecutorList(executorList); 3159762338dSopenharmony_ci cout << "ret is " << ret << endl; 3169762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3179762338dSopenharmony_ci} 3189762338dSopenharmony_ci 3199762338dSopenharmony_ci/** 3209762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_FUNC_0111 3219762338dSopenharmony_ci * @tc.name: Test SetBufferProducer 3229762338dSopenharmony_ci * @tc.size: MediumTest 3239762338dSopenharmony_ci * @tc.type: Function 3249762338dSopenharmony_ci * @tc.level: Level1 3259762338dSopenharmony_ci */ 3269762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_FUNC_0111, Function | MediumTest | Level1) 3279762338dSopenharmony_ci{ 3289762338dSopenharmony_ci cout << "start test SetBufferProducer" << endl; 3299762338dSopenharmony_ci sptr<IBufferProducer> bufferProducer = nullptr; 3309762338dSopenharmony_ci if (parcel.ReadBool()) { 3319762338dSopenharmony_ci auto surface = IConsumerSurface::Create(); 3329762338dSopenharmony_ci if (surface == nullptr) { 3339762338dSopenharmony_ci cout << "CreateSurfaceAsConsumer fail" << endl; 3349762338dSopenharmony_ci } else { 3359762338dSopenharmony_ci bufferProducer = surface->GetProducer(); 3369762338dSopenharmony_ci } 3379762338dSopenharmony_ci } 3389762338dSopenharmony_ci sptr<BufferProducerSequenceable> producerSequenceable = 3399762338dSopenharmony_ci new (std::nothrow) BufferProducerSequenceable(bufferProducer); 3409762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 3419762338dSopenharmony_ci int32_t ret = faceauth_Interface.SetBufferProducer(producerSequenceable); 3429762338dSopenharmony_ci cout << "ret is " << ret << endl; 3439762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3449762338dSopenharmony_ci} 3459762338dSopenharmony_ci 3469762338dSopenharmony_ci/** 3479762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_NEW_FUNC_0101 3489762338dSopenharmony_ci * @tc.name: Test GetProperty 3499762338dSopenharmony_ci * @tc.size: MediumTest 3509762338dSopenharmony_ci * @tc.type: Function 3519762338dSopenharmony_ci * @tc.level: Level1 3529762338dSopenharmony_ci */ 3539762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_NEW_FUNC_0101, Function | MediumTest | Level1) 3549762338dSopenharmony_ci{ 3559762338dSopenharmony_ci cout << "start test GetProperty" << endl; 3569762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 3579762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 3589762338dSopenharmony_ci std::vector<int32_t> propertyTypes; 3599762338dSopenharmony_ci FillTestInt32Vector(parcel, propertyTypes); 3609762338dSopenharmony_ci Property property; 3619762338dSopenharmony_ci FillTestProperty(parcel, property); 3629762338dSopenharmony_ci int32_t ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 3639762338dSopenharmony_ci cout << "ret is " << ret << endl; 3649762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3659762338dSopenharmony_ci} 3669762338dSopenharmony_ci 3679762338dSopenharmony_ci/** 3689762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_NEW_FUNC_0102 3699762338dSopenharmony_ci * @tc.name: Test SetCachedTemplates 3709762338dSopenharmony_ci * @tc.size: MediumTest 3719762338dSopenharmony_ci * @tc.type: Function 3729762338dSopenharmony_ci * @tc.level: Level1 3739762338dSopenharmony_ci */ 3749762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_NEW_FUNC_0102, Function | MediumTest | Level1) 3759762338dSopenharmony_ci{ 3769762338dSopenharmony_ci cout << "start test SetCachedTemplates" << endl; 3779762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 3789762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 3799762338dSopenharmony_ci 3809762338dSopenharmony_ci int32_t ret = g_executorImpl.SetCachedTemplates(templateIdList); 3819762338dSopenharmony_ci 3829762338dSopenharmony_ci cout << "ret is " << ret << endl; 3839762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3849762338dSopenharmony_ci} 3859762338dSopenharmony_ci 3869762338dSopenharmony_ci/** 3879762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_NEW_FUNC_0103 3889762338dSopenharmony_ci * @tc.name: Test RegisterSaCommandCallback 3899762338dSopenharmony_ci * @tc.size: MediumTest 3909762338dSopenharmony_ci * @tc.type: Function 3919762338dSopenharmony_ci * @tc.level: Level1 3929762338dSopenharmony_ci */ 3939762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_NEW_FUNC_0103, Function | MediumTest | Level1) 3949762338dSopenharmony_ci{ 3959762338dSopenharmony_ci cout << "start test RegisterSaCommandCallback" << endl; 3969762338dSopenharmony_ci sptr<ISaCommandCallback> callbackObj = nullptr; 3979762338dSopenharmony_ci FillTestISaCommandCallback(parcel, callbackObj); 3989762338dSopenharmony_ci 3999762338dSopenharmony_ci int32_t ret = g_executorImpl.RegisterSaCommandCallback(callbackObj); 4009762338dSopenharmony_ci 4019762338dSopenharmony_ci cout << "ret is " << ret << endl; 4029762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4039762338dSopenharmony_ci} 4049762338dSopenharmony_ci 4059762338dSopenharmony_ci/** 4069762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_NEW_FUNC_0104 4079762338dSopenharmony_ci * @tc.name: Test GetExecutorList 4089762338dSopenharmony_ci * @tc.size: MediumTest 4099762338dSopenharmony_ci * @tc.type: Function 4109762338dSopenharmony_ci * @tc.level: Level1 4119762338dSopenharmony_ci */ 4129762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_NEW_FUNC_0104, Function | MediumTest | Level1) 4139762338dSopenharmony_ci{ 4149762338dSopenharmony_ci cout << "start test GetExecutorList" << endl; 4159762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 4169762338dSopenharmony_ci std::vector<sptr<IAllInOneExecutor>> executorList; 4179762338dSopenharmony_ci int32_t ret = faceauth_Interface.GetExecutorList(executorList); 4189762338dSopenharmony_ci 4199762338dSopenharmony_ci cout << "ret is " << ret << endl; 4209762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4219762338dSopenharmony_ci} 4229762338dSopenharmony_ci/** 4239762338dSopenharmony_ci * @tc.number: Security_IAM_Face_HDI_NEW_FUNC_0106 4249762338dSopenharmony_ci * @tc.name: Test Send Message 4259762338dSopenharmony_ci * @tc.size: MediumTest 4269762338dSopenharmony_ci * @tc.type: Function 4279762338dSopenharmony_ci * @tc.level: Level1 4289762338dSopenharmony_ci */ 4299762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTest, Security_IAM_Face_HDI_NEW_FUNC_0106, Function | MediumTest | Level1) 4309762338dSopenharmony_ci{ 4319762338dSopenharmony_ci cout << "start test RegisterSaCommandCallback" << endl; 4329762338dSopenharmony_ci sptr<ISaCommandCallback> callbackObj = nullptr; 4339762338dSopenharmony_ci FillTestISaCommandCallback(parcel, callbackObj); 4349762338dSopenharmony_ci 4359762338dSopenharmony_ci uint64_t scheduleId = parcel.ReadUint64(); 4369762338dSopenharmony_ci int32_t srcRole = parcel.ReadInt32(); 4379762338dSopenharmony_ci std::vector<uint8_t> msg; 4389762338dSopenharmony_ci FillTestUint8Vector(parcel, msg); 4399762338dSopenharmony_ci 4409762338dSopenharmony_ci int32_t ret = g_executorImpl.SendMessage(scheduleId, srcRole, msg); 4419762338dSopenharmony_ci 4429762338dSopenharmony_ci cout << "ret is " << ret << endl; 4439762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4449762338dSopenharmony_ci}