1ea497e4dSopenharmony_ci/* 2ea497e4dSopenharmony_ci * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3ea497e4dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4ea497e4dSopenharmony_ci * you may not use this file except in compliance with the License. 5ea497e4dSopenharmony_ci * You may obtain a copy of the License at 6ea497e4dSopenharmony_ci * 7ea497e4dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8ea497e4dSopenharmony_ci * 9ea497e4dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10ea497e4dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11ea497e4dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12ea497e4dSopenharmony_ci * See the License for the specific language governing permissions and 13ea497e4dSopenharmony_ci * limitations under the License. 14ea497e4dSopenharmony_ci */ 15ea497e4dSopenharmony_ci 16ea497e4dSopenharmony_ci#include "gtest/gtest.h" 17ea497e4dSopenharmony_ci 18ea497e4dSopenharmony_ci#include "accesstoken_kit.h" 19ea497e4dSopenharmony_ci#include "message_parcel.h" 20ea497e4dSopenharmony_ci#include "nativetoken_kit.h" 21ea497e4dSopenharmony_ci#include "token_setproc.h" 22ea497e4dSopenharmony_ci 23ea497e4dSopenharmony_ci#include "face_auth_service.h" 24ea497e4dSopenharmony_ci 25ea497e4dSopenharmony_ciusing namespace testing; 26ea497e4dSopenharmony_ciusing namespace testing::ext; 27ea497e4dSopenharmony_ci 28ea497e4dSopenharmony_cinamespace OHOS { 29ea497e4dSopenharmony_cinamespace UserIam { 30ea497e4dSopenharmony_cinamespace FaceAuth { 31ea497e4dSopenharmony_ciclass FaceAuthServiceTest : public testing::Test { 32ea497e4dSopenharmony_cipublic: 33ea497e4dSopenharmony_ci static void SetUpTestCase(); 34ea497e4dSopenharmony_ci static void TearDownTestCase(); 35ea497e4dSopenharmony_ci void SetUp(); 36ea497e4dSopenharmony_ci void TearDown(); 37ea497e4dSopenharmony_ci}; 38ea497e4dSopenharmony_ci 39ea497e4dSopenharmony_civoid FaceAuthServiceTest::SetUpTestCase() 40ea497e4dSopenharmony_ci{ 41ea497e4dSopenharmony_ci static const char *perms[] = { "ohos.permission.MANAGE_USER_IDM" }; 42ea497e4dSopenharmony_ci NativeTokenInfoParams infoInstance = { 43ea497e4dSopenharmony_ci .dcapsNum = 0, 44ea497e4dSopenharmony_ci .permsNum = 1, 45ea497e4dSopenharmony_ci .aclsNum = 0, 46ea497e4dSopenharmony_ci .dcaps = nullptr, 47ea497e4dSopenharmony_ci .perms = perms, 48ea497e4dSopenharmony_ci .acls = nullptr, 49ea497e4dSopenharmony_ci .processName = "face_auth_service_test", 50ea497e4dSopenharmony_ci .aplStr = "system_core", 51ea497e4dSopenharmony_ci }; 52ea497e4dSopenharmony_ci uint64_t tokenId = GetAccessTokenId(&infoInstance); 53ea497e4dSopenharmony_ci SetSelfTokenID(tokenId); 54ea497e4dSopenharmony_ci Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); 55ea497e4dSopenharmony_ci} 56ea497e4dSopenharmony_ci 57ea497e4dSopenharmony_civoid FaceAuthServiceTest::TearDownTestCase() 58ea497e4dSopenharmony_ci{ 59ea497e4dSopenharmony_ci} 60ea497e4dSopenharmony_ci 61ea497e4dSopenharmony_civoid FaceAuthServiceTest::SetUp() 62ea497e4dSopenharmony_ci{ 63ea497e4dSopenharmony_ci} 64ea497e4dSopenharmony_ci 65ea497e4dSopenharmony_civoid FaceAuthServiceTest::TearDown() 66ea497e4dSopenharmony_ci{ 67ea497e4dSopenharmony_ci} 68ea497e4dSopenharmony_ci 69ea497e4dSopenharmony_ciHWTEST_F(FaceAuthServiceTest, FaceAuthServiceTest_001, TestSize.Level0) 70ea497e4dSopenharmony_ci{ 71ea497e4dSopenharmony_ci auto service = FaceAuthService::GetInstance(); 72ea497e4dSopenharmony_ci EXPECT_NE(service, nullptr); 73ea497e4dSopenharmony_ci sptr<IBufferProducer> producer(nullptr); 74ea497e4dSopenharmony_ci int32_t ret = service->SetBufferProducer(producer); 75ea497e4dSopenharmony_ci EXPECT_EQ(ret, FACE_AUTH_SUCCESS); 76ea497e4dSopenharmony_ci} 77ea497e4dSopenharmony_ci 78ea497e4dSopenharmony_ciHWTEST_F(FaceAuthServiceTest, FaceAuthServiceTest_002, TestSize.Level0) 79ea497e4dSopenharmony_ci{ 80ea497e4dSopenharmony_ci MessageParcel data; 81ea497e4dSopenharmony_ci MessageParcel reply; 82ea497e4dSopenharmony_ci MessageOption option(MessageOption::TF_SYNC); 83ea497e4dSopenharmony_ci uint32_t code = IFaceAuthInterfaceCode::FACE_AUTH_SET_BUFFER_PRODUCER; 84ea497e4dSopenharmony_ci 85ea497e4dSopenharmony_ci auto service = FaceAuthService::GetInstance(); 86ea497e4dSopenharmony_ci EXPECT_NE(service, nullptr); 87ea497e4dSopenharmony_ci EXPECT_EQ(service->OnRemoteRequest(code, data, reply, option), 1); 88ea497e4dSopenharmony_ci EXPECT_TRUE(data.WriteInterfaceToken(IFaceAuth::GetDescriptor())); 89ea497e4dSopenharmony_ci EXPECT_EQ(service->OnRemoteRequest(code, data, reply, option), 0); 90ea497e4dSopenharmony_ci int32_t result = -1; 91ea497e4dSopenharmony_ci EXPECT_TRUE(reply.ReadInt32(result)); 92ea497e4dSopenharmony_ci EXPECT_EQ(result, FACE_AUTH_SUCCESS); 93ea497e4dSopenharmony_ci} 94ea497e4dSopenharmony_ci} // namespace FaceAuth 95ea497e4dSopenharmony_ci} // namespace UserIam 96ea497e4dSopenharmony_ci} // namespace OHOS 97