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