• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 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 
18 #include "iam_logger.h"
19 #include "iam_ptr.h"
20 
21 #include "face_auth_driver_hdi.h"
22 #include "mock_face_auth_interface_adapter.h"
23 #include "mock_iexecutor.h"
24 #include "mock_iface_auth_interface.h"
25 
26 #define LOG_LABEL OHOS::UserIam::Common::LABEL_FACE_AUTH_SA
27 
28 using namespace testing;
29 using namespace testing::ext;
30 using namespace OHOS::HDI::FaceAuth::V1_0;
31 using namespace OHOS::UserIam::Common;
32 
33 namespace OHOS {
34 namespace UserIam {
35 namespace FaceAuth {
36 class FaceAuthDriverHdiUnitTest : public testing::Test {
37 public:
38     static void SetUpTestCase();
39     static void TearDownTestCase();
40     void SetUp();
41     void TearDown();
42 };
43 
SetUpTestCase()44 void FaceAuthDriverHdiUnitTest::SetUpTestCase()
45 {
46 }
47 
TearDownTestCase()48 void FaceAuthDriverHdiUnitTest::TearDownTestCase()
49 {
50 }
51 
SetUp()52 void FaceAuthDriverHdiUnitTest::SetUp()
53 {
54 }
55 
TearDown()56 void FaceAuthDriverHdiUnitTest::TearDown()
57 {
58 }
59 
60 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_001, TestSize.Level0)
61 {
62     FaceAuthDriverHdi driverHdi(nullptr);
63     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
64     driverHdi.GetExecutorList(executorList);
65     EXPECT_TRUE(executorList.size() == 0);
66 }
67 
68 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_002, TestSize.Level0)
69 {
70     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
71     ASSERT_TRUE(adapter != nullptr);
72     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(nullptr));
73 
74     FaceAuthDriverHdi driverHdi(adapter);
75     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
76     driverHdi.GetExecutorList(executorList);
77     EXPECT_TRUE(executorList.size() == 0);
78 }
79 
80 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_003, TestSize.Level0)
81 {
82     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
83     ASSERT_TRUE(interface != nullptr);
84     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1));
85 
86     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
87     ASSERT_TRUE(adapter != nullptr);
88     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
89 
90     FaceAuthDriverHdi driverHdi(adapter);
91     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
92     driverHdi.GetExecutorList(executorList);
93     EXPECT_TRUE(executorList.size() == 0);
94 }
95 
96 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_004, TestSize.Level0)
97 {
98     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
99     ASSERT_TRUE(interface != nullptr);
__anon3e0a5fd40102(std::vector<sptr<IExecutor>> &list) 100     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1)).WillOnce([](std::vector<sptr<IExecutor>> &list) {
101         return static_cast<int32_t>(HDF_FAILURE);
102     });
103 
104     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
105     ASSERT_TRUE(adapter != nullptr);
106     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
107 
108     FaceAuthDriverHdi driverHdi(adapter);
109     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
110     driverHdi.GetExecutorList(executorList);
111     EXPECT_TRUE(executorList.size() == 0);
112 }
113 
114 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_005, TestSize.Level0)
115 {
116     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
117     ASSERT_TRUE(interface != nullptr);
__anon3e0a5fd40202(std::vector<sptr<IExecutor>> &list) 118     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1)).WillOnce([](std::vector<sptr<IExecutor>> &list) {
119         return static_cast<int32_t>(HDF_SUCCESS);
120     });
121 
122     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
123     ASSERT_TRUE(adapter != nullptr);
124     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
125 
126     FaceAuthDriverHdi driverHdi(adapter);
127     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
128     driverHdi.GetExecutorList(executorList);
129     EXPECT_TRUE(executorList.size() == 0);
130 }
131 
132 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_006, TestSize.Level0)
133 {
134     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
135     ASSERT_TRUE(interface != nullptr);
__anon3e0a5fd40302(std::vector<sptr<IExecutor>> &list) 136     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1)).WillOnce([](std::vector<sptr<IExecutor>> &list) {
137         auto executor = sptr<IExecutor>(new (std::nothrow) MockIExecutor());
138         EXPECT_TRUE(executor != nullptr);
139         list.push_back(executor);
140         return static_cast<int32_t>(HDF_SUCCESS);
141     });
142 
143     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
144     ASSERT_TRUE(adapter != nullptr);
145     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
146 
147     FaceAuthDriverHdi driverHdi(adapter);
148     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
149     driverHdi.GetExecutorList(executorList);
150     EXPECT_TRUE(executorList.size() == 1);
151 }
152 
153 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_007, TestSize.Level0)
154 {
155     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
156     ASSERT_TRUE(interface != nullptr);
__anon3e0a5fd40402(std::vector<sptr<IExecutor>> &list) 157     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1)).WillOnce([](std::vector<sptr<IExecutor>> &list) {
158         list.push_back(sptr<IExecutor>(nullptr));
159         auto executor = sptr<IExecutor>(new (std::nothrow) MockIExecutor());
160         EXPECT_TRUE(executor != nullptr);
161         list.push_back(executor);
162         list.push_back(sptr<IExecutor>(nullptr));
163         executor = sptr<IExecutor>(new (std::nothrow) MockIExecutor());
164         EXPECT_TRUE(executor != nullptr);
165         list.push_back(executor);
166         return static_cast<int32_t>(HDF_SUCCESS);
167     });
168 
169     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
170     ASSERT_TRUE(adapter != nullptr);
171     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
172 
173     FaceAuthDriverHdi driverHdi(adapter);
174     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
175     driverHdi.GetExecutorList(executorList);
176     EXPECT_TRUE(executorList.size() == 2);
177 }
178 
179 HWTEST_F(FaceAuthDriverHdiUnitTest, FaceAuthDriverHdi_GetExecutorListTest_008, TestSize.Level0)
180 {
181     sptr<MockIFaceAuthInterface> interface = new (std::nothrow) MockIFaceAuthInterface();
182     ASSERT_TRUE(interface != nullptr);
__anon3e0a5fd40502(std::vector<sptr<IExecutor>> &list) 183     EXPECT_CALL(*interface, GetExecutorList(_)).Times(Exactly(1)).WillOnce([](std::vector<sptr<IExecutor>> &list) {
184         auto executor = sptr<IExecutor>(new (std::nothrow) MockIExecutor());
185         EXPECT_TRUE(executor != nullptr);
186         list.push_back(executor);
187         return static_cast<int32_t>(HDF_FAILURE);
188     });
189 
190     auto adapter = MakeShared<MockFaceAuthInterfaceAdapter>();
191     ASSERT_TRUE(adapter != nullptr);
192     EXPECT_CALL(*adapter, Get()).Times(Exactly(1)).WillOnce(Return(interface));
193 
194     FaceAuthDriverHdi driverHdi(adapter);
195     std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> executorList;
196     driverHdi.GetExecutorList(executorList);
197     EXPECT_TRUE(executorList.size() == 0);
198 }
199 } // namespace FaceAuth
200 } // namespace UserIam
201 } // namespace OHOS
202