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 "os_account_manager_helper.h"
17 
18 namespace {
19 int32_t g_mockId = 100; // default id when there is no os_account part
20 bool g_mockQueryActiveOsAccountIdsRet = true;
21 bool g_mockGetOsAccountLocalIdFromUidRet = true;
22 int32_t g_mockIdForGetOsAccountLocalIdFromUid = 100;
23 }
24 
MockQueryActiveOsAccountIds(bool mockRet,uint8_t mockCase)25 void MockQueryActiveOsAccountIds(bool mockRet, uint8_t mockCase)
26 {
27     g_mockQueryActiveOsAccountIdsRet = mockRet;
28     switch (mockCase) {
29         case 1: {
30             g_mockId = 101; // 101 mockcase1
31             break;
32         }
33         default: {
34             g_mockId = 100; // 100 mockdefault
35             break;
36         }
37     }
38 }
39 
ResetAccountMock()40 void ResetAccountMock()
41 {
42     g_mockId = 100; // 100 mockId
43     g_mockQueryActiveOsAccountIdsRet = true;
44     g_mockGetOsAccountLocalIdFromUidRet = true;
45     g_mockIdForGetOsAccountLocalIdFromUid = 100;// 100 MockIdForGetOsAccountLocalIdFromUid
46 }
47 
MockGetOsAccountLocalIdFromUid(bool mockRet,uint8_t mockCase=0)48 void MockGetOsAccountLocalIdFromUid(bool mockRet, uint8_t mockCase = 0)
49 {
50     g_mockGetOsAccountLocalIdFromUidRet = mockRet;
51     switch (mockCase) {
52         case 1: { // mock for invalid id
53             g_mockIdForGetOsAccountLocalIdFromUid = -2; // -2 mock for invalid id
54             break;
55         }
56         case 2: { // mock for system id
57             g_mockIdForGetOsAccountLocalIdFromUid = 88; // 88 mock for system id
58             break;
59         }
60         default: {
61             g_mockIdForGetOsAccountLocalIdFromUid = 100; // 100 mock for system id
62             break;
63         }
64     }
65 }
66 
67 namespace OHOS {
68 namespace EventFwk {
QueryActiveOsAccountIds(std::vector<int32_t> & ids)69 ErrCode OsAccountManagerHelper::QueryActiveOsAccountIds(std::vector<int32_t>& ids)
70 {
71     ids.emplace_back(g_mockId);
72     return g_mockQueryActiveOsAccountIdsRet ? ERR_OK : ERR_INVALID_OPERATION;
73 }
74 
GetOsAccountLocalIdFromUid(const int32_t uid,int32_t & id)75 ErrCode OsAccountManagerHelper::GetOsAccountLocalIdFromUid(const int32_t uid, int32_t &id)
76 {
77     id = g_mockIdForGetOsAccountLocalIdFromUid;
78     return g_mockGetOsAccountLocalIdFromUidRet ? ERR_OK : ERR_INVALID_OPERATION;
79 }
80 }  // namespace EventFwk
81 }  // namespace OHOS