1 /*
2  * Copyright (c) 2021 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 #include "system_ability.h"
18 #include "mock_system_ability.h"
19 
20 namespace OHOS {
21 std::vector<int> g_accountIds;
SystemAbility(bool runOnCreate)22 SystemAbility::SystemAbility(bool runOnCreate)
23 {
24     GTEST_LOG_(INFO) << "MOCK SystemAbility SystemAbility";
25     isRunning_ = false;
26     isRunOnCreate_ = runOnCreate;
27     isDistributed_ = false;
28     dumpLevel_ = 0;
29     capability_ = u"";
30 }
31 
SystemAbility(int32_t systemAbilityId,bool runOnCreate)32 SystemAbility::SystemAbility(int32_t systemAbilityId, bool runOnCreate) : SystemAbility(runOnCreate)
33 {
34     GTEST_LOG_(INFO) << "MOCK SystemAbility SystemAbility";
35     saId_ = systemAbilityId;
36 }
37 
~SystemAbility()38 SystemAbility::~SystemAbility()
39 {
40     GTEST_LOG_(INFO) << "MOCK SystemAbility ~SystemAbility";
41 }
42 
MakeAndRegisterAbility(SystemAbility * systemAbility)43 bool SystemAbility::MakeAndRegisterAbility(SystemAbility* systemAbility)
44 {
45     GTEST_LOG_(INFO) << "MOCK SystemAbility MakeAndRegisterAbility";
46     delete systemAbility;
47     systemAbility = nullptr;
48     return true;
49 }
50 
AddSystemAbilityListener(int32_t systemAbilityId)51 bool SystemAbility::AddSystemAbilityListener(int32_t systemAbilityId)
52 {
53     GTEST_LOG_(INFO) << "MOCK SystemAbility AddSystemAbilityListener";
54     OnAddSystemAbility(systemAbilityId, "");
55     return true;
56 }
57 
RemoveSystemAbilityListener(int32_t systemAbilityId)58 bool SystemAbility::RemoveSystemAbilityListener(int32_t systemAbilityId)
59 {
60     GTEST_LOG_(INFO) << "MOCK SystemAbility RemoveSystemAbilityListener";
61     (void)systemAbilityId;
62     return true;
63 }
64 
Publish(sptr<IRemoteObject> systemAbility)65 bool SystemAbility::Publish(sptr<IRemoteObject> systemAbility)
66 {
67     GTEST_LOG_(INFO) << "MOCK SystemAbility Publish";
68     (void)systemAbility;
69     systemAbility.ForceSetRefPtr(nullptr);
70     return true;
71 }
72 
CancelIdle()73 bool SystemAbility::CancelIdle()
74 {
75     return true;
76 }
77 
StopAbility(int32_t systemAbilityId)78 void SystemAbility::StopAbility(int32_t systemAbilityId)
79 {
80     GTEST_LOG_(INFO) << "MOCK SystemAbility StopAbility";
81     return;
82 }
83 
Start()84 void SystemAbility::Start()
85 {
86     GTEST_LOG_(INFO) << "MOCK SystemAbility Start";
87     OnStart();
88     isRunning_ = true;
89 }
90 
Stop()91 void SystemAbility::Stop()
92 {
93     GTEST_LOG_(INFO) << "MOCK SystemAbility Stop";
94     if (!isRunning_) {
95         return;
96     }
97 
98     OnStop();
99     isRunning_ = false;
100 }
101 
SADump()102 void SystemAbility::SADump()
103 {
104     GTEST_LOG_(INFO) << "MOCK SystemAbility SADump";
105     OnDump();
106 }
107 
GetSystemAbilitId() const108 int32_t SystemAbility::GetSystemAbilitId() const
109 {
110     GTEST_LOG_(INFO) << "MOCK SystemAbility GetSystemAbilitId";
111     return saId_;
112 }
113 
SetLibPath(const std::string & libPath)114 void SystemAbility::SetLibPath(const std::string& libPath)
115 {
116     GTEST_LOG_(INFO) << "MOCK SystemAbility SetLibPath";
117     libPath_ = libPath;
118 }
119 
GetLibPath() const120 const std::string& SystemAbility::GetLibPath() const
121 {
122     GTEST_LOG_(INFO) << "MOCK SystemAbility GetLibPath";
123     return libPath_;
124 }
125 
SetDependSa(const std::vector<int32_t> & dependSa)126 void SystemAbility::SetDependSa(const std::vector<int32_t>& dependSa)
127 {
128     GTEST_LOG_(INFO) << "MOCK SystemAbility SetDependSa";
129     dependSa_ = dependSa;
130 }
131 
GetDependSa() const132 const std::vector<int32_t>& SystemAbility::GetDependSa() const
133 {
134     GTEST_LOG_(INFO) << "MOCK SystemAbility GetDependSa";
135     return dependSa_;
136 }
137 
SetRunOnCreate(bool isRunOnCreate)138 void SystemAbility::SetRunOnCreate(bool isRunOnCreate)
139 {
140     GTEST_LOG_(INFO) << "MOCK SystemAbility SetRunOnCreate";
141     isRunOnCreate_ = isRunOnCreate;
142 }
143 
IsRunOnCreate() const144 bool SystemAbility::IsRunOnCreate() const
145 {
146     GTEST_LOG_(INFO) << "MOCK SystemAbility IsRunOnCreate";
147     return isRunOnCreate_;
148 }
149 
SetDistributed(bool isDistributed)150 void SystemAbility::SetDistributed(bool isDistributed)
151 {
152     GTEST_LOG_(INFO) << "MOCK SystemAbility SetDistributed";
153     isDistributed_ = isDistributed;
154 }
155 
GetDistributed() const156 bool SystemAbility::GetDistributed() const
157 {
158     GTEST_LOG_(INFO) << "MOCK SystemAbility GetDistributed";
159     return isDistributed_;
160 }
161 
GetRunningStatus() const162 bool SystemAbility::GetRunningStatus() const
163 {
164     GTEST_LOG_(INFO) << "MOCK SystemAbility GetRunningStatus";
165     return isRunning_;
166 }
167 
SetDumpLevel(uint32_t dumpLevel)168 void SystemAbility::SetDumpLevel(uint32_t dumpLevel)
169 {
170     GTEST_LOG_(INFO) << "MOCK SystemAbility SetDumpLevel";
171     dumpLevel_ = dumpLevel;
172 }
173 
GetDumpLevel() const174 uint32_t SystemAbility::GetDumpLevel() const
175 {
176     GTEST_LOG_(INFO) << "MOCK SystemAbility GetDumpLevel";
177     return dumpLevel_;
178 }
179 
SetDependTimeout(int32_t dependTimeout)180 void SystemAbility::SetDependTimeout(int32_t dependTimeout)
181 {
182     GTEST_LOG_(INFO) << "MOCK SystemAbility SetDependTimeout";
183     (void)dependTimeout;
184 }
185 
GetDependTimeout() const186 int32_t SystemAbility::GetDependTimeout() const
187 {
188     GTEST_LOG_(INFO) << "MOCK SystemAbility GetDependTimeout";
189     return dependTimeout_;
190 }
191 
192 // The details should be implemented by subclass
OnDump()193 void SystemAbility::OnDump()
194 {
195     GTEST_LOG_(INFO) << "MOCK SystemAbility OnDump";
196 }
197 
198 // The details should be implemented by subclass
OnStart()199 void SystemAbility::OnStart()
200 {
201     GTEST_LOG_(INFO) << "MOCK SystemAbility OnStart";
202 }
203 
OnExtension(const std::string & extension,MessageParcel & data,MessageParcel & reply)204 int32_t SystemAbility::OnExtension(const std::string& extension, MessageParcel& data, MessageParcel& reply)
205 {
206     GTEST_LOG_(INFO) << "aams MOCK SystemAbility OnExtension";
207     return 0;
208 }
209 
OnStart(const SystemAbilityOnDemandReason & startReason)210 void SystemAbility::OnStart(const SystemAbilityOnDemandReason& startReason)
211 {
212     GTEST_LOG_(INFO) << "MOCK SystemAbility OnStart";
213 }
214 
OnIdle(const SystemAbilityOnDemandReason & idleReason)215 int32_t SystemAbility::OnIdle(const SystemAbilityOnDemandReason& idleReason)
216 {
217     GTEST_LOG_(INFO) << "MOCK SystemAbility OnIdle";
218     return 0;
219 }
220 
OnActive(const SystemAbilityOnDemandReason & activeReason)221 void SystemAbility::OnActive(const SystemAbilityOnDemandReason& activeReason)
222 {
223     GTEST_LOG_(INFO) << "MOCK SystemAbility OnActive";
224 }
225 
226 // The details should be implemented by subclass
OnStop()227 void SystemAbility::OnStop()
228 {
229     GTEST_LOG_(INFO) << "MOCK SystemAbility OnStop";
230 }
231 
OnStop(const SystemAbilityOnDemandReason & stopReason)232 void SystemAbility::OnStop(const SystemAbilityOnDemandReason& stopReason)
233 {
234     GTEST_LOG_(INFO) << "MOCK SystemAbility OnStop";
235 }
236 
237 // The details should be implemented by subclass
OnAddSystemAbility(int32_t systemAbilityId,const std::string & deviceId)238 void SystemAbility::OnAddSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
239 {
240     GTEST_LOG_(INFO) << "MOCK SystemAbility OnAddSystemAbility";
241     (void)systemAbilityId;
242     (void)deviceId;
243 }
244 
245 // The details should be implemented by subclass
OnRemoveSystemAbility(int32_t systemAbilityId,const std::string & deviceId)246 void SystemAbility::OnRemoveSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
247 {
248     GTEST_LOG_(INFO) << "MOCK SystemAbility OnRemoveSystemAbility";
249     (void)systemAbilityId;
250     (void)deviceId;
251 }
252 
GetSystemAbility(int32_t systemAbilityId)253 sptr<IRemoteObject> SystemAbility::GetSystemAbility(int32_t systemAbilityId)
254 {
255     GTEST_LOG_(INFO) << "MOCK SystemAbility GetSystemAbility 1";
256     (void)systemAbilityId;
257     if (!g_mockAbility) {
258         return g_mockAbility;
259     }
260     return nullptr;
261 }
262 
SetCapability(const std::u16string & capability)263 void SystemAbility::SetCapability(const std::u16string& capability)
264 {
265     GTEST_LOG_(INFO) << "MOCK SystemAbility SetCapability";
266     capability_ = capability;
267 }
268 
GetCapability() const269 const std::u16string& SystemAbility::GetCapability() const
270 {
271     GTEST_LOG_(INFO) << "MOCK SystemAbility GetCapability";
272     return capability_;
273 }
274 
SetPermission(const std::u16string & permission)275 void SystemAbility::SetPermission(const std::u16string& permission)
276 {
277     GTEST_LOG_(INFO) << "MOCK SystemAbility SetPermission";
278     permission_ = permission;
279 }
280 
281 // The details should be implemented by subclass
OnDeviceLevelChanged(int32_t type,int32_t level,std::string & action)282 void SystemAbility::OnDeviceLevelChanged(int32_t type, int32_t level, std::string& action)
283 {
284     GTEST_LOG_(INFO) << "MOCK SystemAbility OnDeviceLevelChanged";
285     (void)type;
286     (void)level;
287     (void)action;
288 }
289 }
290