• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 <gmock/gmock.h>
17 #include "account_iam_client.h"
18 
19 namespace OHOS {
20 namespace AccountTest {
21 namespace {
22     const int32_t TEST_USER_ID = 200;
23     const uint64_t TEST_CONTEXT_ID = 122;
24     const std::vector<uint8_t> TEST_CHALLENGE = {1, 2, 3, 4};
25 }
26 
27 using namespace testing;
28 using namespace testing::ext;
29 using namespace OHOS::AccountSA;
30 using namespace OHOS::UserIam::UserAuth;
31 
32 class AccountIAMProxyMockTest : public testing::Test {
33 public:
34     static void SetUpTestCase(void);
35     static void TearDownTestCase(void);
36     void SetUp(void) override;
37     void TearDown(void) override;
38 };
39 
SetUpTestCase(void)40 void AccountIAMProxyMockTest::SetUpTestCase(void)
41 {}
42 
TearDownTestCase(void)43 void AccountIAMProxyMockTest::TearDownTestCase(void)
44 {}
45 
SetUp(void)46 void AccountIAMProxyMockTest::SetUp(void)
47 {}
48 
TearDown(void)49 void AccountIAMProxyMockTest::TearDown(void)
50 {}
51 
52 class IDMCallbackMockTest final : public AccountSA::IDMCallback {
53 public:
OnResult(int32_t result,const AccountSA::Attributes & extraInfo)54     void OnResult(int32_t result, const AccountSA::Attributes &extraInfo)
55     {
56         result_ = result;
57     }
OnAcquireInfo(int32_t module,uint32_t acquireInfo,const Attributes & extraInfo)58     void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) {}
59     int32_t result_;
60 };
61 
62 class GetSetPropCallbackMockTest final : public AccountSA::GetSetPropCallback {
63 public:
OnResult(int32_t result,const AccountSA::Attributes & extraInfo)64     void OnResult(int32_t result, const AccountSA::Attributes &extraInfo)
65     {
66         result_ = result;
67     }
68     int32_t result_;
69 };
70 
71 /**
72  * @tc.name: AccountIAMClient_OpenSession_0100
73  * @tc.desc: Test func with proxy is nullptr.
74  * @tc.type: FUNC
75  * @tc.require: issueI5N90O
76  */
77 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_OpenSession_0100, TestSize.Level0)
78 {
79     std::vector<uint8_t> challenge;
80     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, AccountIAMClient::GetInstance().OpenSession(TEST_USER_ID, challenge));
81 }
82 
83 /**
84  * @tc.name: AccountIAMClient_CloseSession_0100
85  * @tc.desc: Test func with proxy is nullptr.
86  * @tc.type: FUNC
87  * @tc.require: issueI5N90O
88  */
89 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_CloseSession_0100, TestSize.Level0)
90 {
91     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, AccountIAMClient::GetInstance().CloseSession(TEST_USER_ID));
92 }
93 
94 /**
95  * @tc.name: AccountIAMClient_AddCredential_0100
96  * @tc.desc: Test func with proxy is nullptr.
97  * @tc.type: FUNC
98  * @tc.require: issueI5N90O
99  */
100 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_AddCredential_0100, TestSize.Level0)
101 {
102     CredentialParameters testPara = {};
103     auto testCallback = std::make_shared<IDMCallbackMockTest>();
104     ASSERT_NE(testCallback, nullptr);
105     AccountIAMClient::GetInstance().AddCredential(TEST_USER_ID, testPara, testCallback);
106     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
107 }
108 
109 /**
110  * @tc.name: AccountIAMClient_UpdateCredential_0100
111  * @tc.desc: Test func with proxy is nullptr.
112  * @tc.type: FUNC
113  * @tc.require: issueI5N90O
114  */
115 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_UpdateCredential_0100, TestSize.Level0)
116 {
117     CredentialParameters testPara = {};
118     auto testCallback = std::make_shared<IDMCallbackMockTest>();
119     ASSERT_NE(testCallback, nullptr);
120     AccountIAMClient::GetInstance().UpdateCredential(TEST_USER_ID, testPara, testCallback);
121     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
122 }
123 
124 /**
125  * @tc.name: AccountIAMClient_Cancel_0100
126  * @tc.desc: Test func with proxy is nullptr.
127  * @tc.type: FUNC
128  * @tc.require: issueI5N90O
129  */
130 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_Cancel_0100, TestSize.Level0)
131 {
132     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, AccountIAMClient::GetInstance().Cancel(TEST_USER_ID));
133 }
134 
135 /**
136  * @tc.name: AccountIAMClient_DelCred_0100
137  * @tc.desc: Test func with proxy is nullptr.
138  * @tc.type: FUNC
139  * @tc.require: issueI5N90O
140  */
141 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_DelCred_0100, TestSize.Level0)
142 {
143     uint64_t testCredentialId = 111;
144     std::vector<uint8_t> testAuthToken = {1, 2, 3, 4};
145     auto testCallback = std::make_shared<IDMCallbackMockTest>();
146     ASSERT_NE(testCallback, nullptr);
147     AccountIAMClient::GetInstance().DelCred(TEST_USER_ID, testCredentialId, testAuthToken, testCallback);
148     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
149 }
150 
151 /**
152  * @tc.name: AccountIAMClient_DelUser_0100
153  * @tc.desc: Test func with proxy is nullptr.
154  * @tc.type: FUNC
155  * @tc.require: issueI5N90O
156  */
157 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_DelUser_0100, TestSize.Level0)
158 {
159     std::vector<uint8_t> testAuthToken = {1, 2, 3, 4};
160     auto testCallback = std::make_shared<IDMCallbackMockTest>();
161     ASSERT_NE(testCallback, nullptr);
162     AccountIAMClient::GetInstance().DelUser(TEST_USER_ID, testAuthToken, testCallback);
163     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
164 }
165 
166 /**
167  * @tc.name: AccountIAMClient_GetCredentialInfo_0100
168  * @tc.desc: Test func with proxy is nullptr.
169  * @tc.type: FUNC
170  * @tc.require: issueI5N90O
171  */
172 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_GetCredentialInfo_0100, TestSize.Level0)
173 {
174     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR,
175         AccountIAMClient::GetInstance().GetCredentialInfo(TEST_USER_ID, AuthType::PIN, nullptr));
176 }
177 
178 /**
179  * @tc.name: AccountIAMClient_AuthUser_0100
180  * @tc.desc: Test func with proxy is nullptr.
181  * @tc.type: FUNC
182  * @tc.require: issueI5N90O
183  */
184 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_AuthUser_0100, TestSize.Level0)
185 {
186     SetPropertyRequest testRequest = {};
187     auto testCallback = std::make_shared<IDMCallbackMockTest>();
188     ASSERT_NE(testCallback, nullptr);
189     ASSERT_EQ(static_cast<uint64_t>(0), AccountIAMClient::GetInstance().AuthUser(
190         TEST_USER_ID, TEST_CHALLENGE, AuthType::PIN, AuthTrustLevel::ATL1, testCallback));
191 }
192 
193 /**
194  * @tc.name: AccountIAMClient_CancelAuth_0100
195  * @tc.desc: Test func with proxy is nullptr.
196  * @tc.type: FUNC
197  * @tc.require: issueI5N90O
198  */
199 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_CancelAuth_0100, TestSize.Level0)
200 {
201     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, AccountIAMClient::GetInstance().CancelAuth(TEST_CONTEXT_ID));
202 }
203 
204 /**
205  * @tc.name: AccountIAMClient_GetAvailableStatus_0100
206  * @tc.desc: Test func with proxy is nullptr.
207  * @tc.type: FUNC
208  * @tc.require: issueI5N90O
209  */
210 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_GetAvailableStatus_0100, TestSize.Level0)
211 {
212     int32_t status;
213     int32_t ret = AccountIAMClient::GetInstance().GetAvailableStatus(AuthType::FACE, AuthTrustLevel::ATL1, status);
214     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, ret);
215 }
216 
217 /**
218  * @tc.name: AccountIAMClient_GetProperty_0100
219  * @tc.desc: Test func with proxy is nullptr.
220  * @tc.type: FUNC
221  * @tc.require: issueI5N90O
222  */
223 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_GetProperty_0100, TestSize.Level0)
224 {
225     GetPropertyRequest testRequest = {};
226     auto testCallback = std::make_shared<GetSetPropCallbackMockTest>();
227     ASSERT_NE(testCallback, nullptr);
228     AccountIAMClient::GetInstance().GetProperty(TEST_USER_ID, testRequest, testCallback);
229     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
230 }
231 
232 /**
233  * @tc.name: AccountIAMClient_SetProperty_0100
234  * @tc.desc: Test func with proxy is nullptr.
235  * @tc.type: FUNC
236  * @tc.require: issueI5N90O
237  */
238 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_SetProperty_0100, TestSize.Level0)
239 {
240     SetPropertyRequest testRequest = {};
241     auto testCallback = std::make_shared<GetSetPropCallbackMockTest>();
242     ASSERT_NE(testCallback, nullptr);
243     AccountIAMClient::GetInstance().SetProperty(TEST_USER_ID, testRequest, testCallback);
244     ASSERT_EQ(ERR_ACCOUNT_IAM_KIT_PROXY_ERROR, testCallback->result_);
245 }
246 
247 /**
248  * @tc.name: AccountIAMClient_GetAccountState_0100
249  * @tc.desc: Test func with proxy is nullptr.
250  * @tc.type: FUNC
251  * @tc.require: issueI5N90O
252  */
253 HWTEST_F(AccountIAMProxyMockTest, AccountIAMClient_GetAccountState_0100, TestSize.Level0)
254 {
255     EXPECT_EQ(IDLE, AccountIAMClient::GetInstance().GetAccountState(TEST_USER_ID));
256 }
257 }  // namespace AccountTest
258 }  // namespace OHOS