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 <singleton.h>
17 #include <gtest/gtest.h>
18 #include "gmock/gmock.h"
19
20 #include "string_ex.h"
21
22 #include "ability_manager_interface.h"
23 #include "ability_context.h"
24
25 #include "mock_ability_manager_client_interface1.h"
26
27 namespace OHOS {
28 namespace AAFwk {
MockAbilityManagerClient()29 MockAbilityManagerClient::MockAbilityManagerClient()
30 {
31 startAbility_ = ERR_INVALID_OPERATION;
32 terminateAbility_ = ERR_INVALID_OPERATION;
33 terminateAbilityValue_ = 0;
34 missionId_ = -1;
35 }
~MockAbilityManagerClient()36 MockAbilityManagerClient::~MockAbilityManagerClient()
37 {}
38
39 std::shared_ptr<MockAbilityManagerClient> MockAbilityManagerClient::mock_instance_ = nullptr;
40 bool MockAbilityManagerClient::mock_intanceIsNull_ = true;
41
GetInstance()42 std::shared_ptr<MockAbilityManagerClient> MockAbilityManagerClient::GetInstance()
43 {
44 if (mock_instance_ == nullptr) {
45 mock_instance_ = std::make_shared<MockAbilityManagerClient>();
46 }
47
48 return mock_instance_;
49 }
50
SetInstanceNull(bool flag)51 void MockAbilityManagerClient::SetInstanceNull(bool flag)
52 {
53 mock_intanceIsNull_ = flag;
54 }
55
GetInstance()56 std::shared_ptr<AbilityManagerClient> AbilityManagerClient::GetInstance()
57 {
58 if (instance_ == nullptr) {
59 std::lock_guard<std::mutex> lock_l(mutex_);
60 if (instance_ == nullptr) {
61 instance_ = MockAbilityManagerClient::GetInstance();
62 }
63 }
64 if (MockAbilityManagerClient::mock_intanceIsNull_)
65 return instance_;
66 else
67 return nullptr;
68 }
69
~AbilityManagerClient()70 AbilityManagerClient::~AbilityManagerClient()
71 {}
72
AttachAbilityThread(sptr<IAbilityScheduler> scheduler,sptr<IRemoteObject> token)73 ErrCode AbilityManagerClient::AttachAbilityThread(
74 sptr<IAbilityScheduler> scheduler, sptr<IRemoteObject> token)
75 {
76 return ERR_OK;
77 }
78
AbilityTransitionDone(sptr<IRemoteObject> token,int state,const PacMap & saveData)79 ErrCode AbilityManagerClient::AbilityTransitionDone(sptr<IRemoteObject> token, int state, const PacMap& saveData)
80 {
81 return ERR_OK;
82 }
83
ScheduleConnectAbilityDone(sptr<IRemoteObject> token,sptr<IRemoteObject> remoteObject)84 ErrCode AbilityManagerClient::ScheduleConnectAbilityDone(
85 sptr<IRemoteObject> token, sptr<IRemoteObject> remoteObject)
86 {
87 return ERR_OK;
88 }
89
ScheduleDisconnectAbilityDone(sptr<IRemoteObject> token)90 ErrCode AbilityManagerClient::ScheduleDisconnectAbilityDone(sptr<IRemoteObject> token)
91 {
92 return ERR_OK;
93 }
94
ScheduleCommandAbilityDone(sptr<IRemoteObject> token)95 ErrCode AbilityManagerClient::ScheduleCommandAbilityDone(sptr<IRemoteObject> token)
96 {
97 return ERR_OK;
98 }
99
ScheduleCommandAbilityWindowDone(sptr<IRemoteObject> token,sptr<SessionInfo> sessionInfo,WindowCommand winCmd,AbilityCommand abilityCmd)100 ErrCode AbilityManagerClient::ScheduleCommandAbilityWindowDone(
101 sptr<IRemoteObject> token,
102 sptr<SessionInfo> sessionInfo,
103 WindowCommand winCmd,
104 AbilityCommand abilityCmd)
105 {
106 return ERR_OK;
107 }
108
TerminateAbility(sptr<IRemoteObject> token,int resultCode,const Want * resultWant)109 ErrCode AbilityManagerClient::TerminateAbility(sptr<IRemoteObject> token, int resultCode, const Want* resultWant)
110 {
111 return ERR_OK;
112 }
113
ConnectAbility(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callerToken)114 ErrCode AbilityManagerClient::ConnectAbility(
115 const Want& want, sptr<IAbilityConnection> connect, sptr<IRemoteObject> callerToken)
116 {
117 return ERR_OK;
118 }
119
DisconnectAbility(sptr<IAbilityConnection> connect)120 ErrCode AbilityManagerClient::DisconnectAbility(sptr<IAbilityConnection> connect)
121 {
122 return ERR_OK;
123 }
124
AcquireDataAbility(const Uri & uri,bool tryBind,sptr<IRemoteObject> callerToken)125 sptr<IAbilityScheduler> AbilityManagerClient::AcquireDataAbility(
126 const Uri& uri, bool tryBind, sptr<IRemoteObject> callerToken)
127 {
128 return nullptr;
129 }
130
ReleaseDataAbility(sptr<IAbilityScheduler> dataAbilityScheduler,sptr<IRemoteObject> callerToken)131 ErrCode AbilityManagerClient::ReleaseDataAbility(
132 sptr<IAbilityScheduler> dataAbilityScheduler, sptr<IRemoteObject> callerToken)
133 {
134 return ERR_OK;
135 }
136
DumpState(const std::string & args,std::vector<std::string> & state)137 ErrCode AbilityManagerClient::DumpState(const std::string& args, std::vector<std::string>& state)
138 {
139 return ERR_OK;
140 }
141
Connect()142 ErrCode AbilityManagerClient::Connect()
143 {
144 return ERR_OK;
145 }
146
StopServiceAbility(const Want & want,sptr<IRemoteObject> token)147 ErrCode AbilityManagerClient::StopServiceAbility(const Want& want, sptr<IRemoteObject> token)
148 {
149 return ERR_OK;
150 }
151
KillProcess(const std::string & bundleName,const bool clearPageStack)152 ErrCode AbilityManagerClient::KillProcess(const std::string& bundleName, const bool clearPageStack)
153 {
154 return ERR_OK;
155 }
156
StartAbility(const Want & want,int requestCode)157 ErrCode AbilityManagerClient::StartAbility(const Want& want, int requestCode)
158 {
159 return MockAbilityManagerClient::GetInstance()->GetStartAbility();
160 }
161
StartAbility(const Want & want,sptr<IRemoteObject> callerToken,int requestCode)162 ErrCode AbilityManagerClient::StartAbility(const Want& want, sptr<IRemoteObject> callerToken, int requestCode)
163 {
164 return MockAbilityManagerClient::GetInstance()->GetStartAbility();
165 }
166
TerminateAbility(sptr<IRemoteObject> callerToken,int requestCode)167 ErrCode AbilityManagerClient::TerminateAbility(sptr<IRemoteObject> callerToken, int requestCode)
168 {
169 MockAbilityManagerClient::GetInstance()->SetTerminateAbilityValue(requestCode);
170 return MockAbilityManagerClient::GetInstance()->GetTerminateAbility();
171 }
172
GetStartAbility()173 ErrCode MockAbilityManagerClient::GetStartAbility()
174 {
175 return startAbility_;
176 }
GetTerminateAbility()177 ErrCode MockAbilityManagerClient::GetTerminateAbility()
178 {
179 return terminateAbility_;
180 }
181
SetStartAbility(ErrCode tValue)182 void MockAbilityManagerClient::SetStartAbility(ErrCode tValue)
183 {
184 startAbility_ = tValue;
185 }
SetTerminateAbility(ErrCode tValue)186 void MockAbilityManagerClient::SetTerminateAbility(ErrCode tValue)
187 {
188 terminateAbility_ = tValue;
189 }
190
GetTerminateAbilityValue()191 int MockAbilityManagerClient::GetTerminateAbilityValue()
192 {
193 return terminateAbilityValue_;
194 }
SetTerminateAbilityValue(int nValue)195 void MockAbilityManagerClient::SetTerminateAbilityValue(int nValue)
196 {
197 terminateAbilityValue_ = nValue;
198 }
199
GetMockMissionId()200 int MockAbilityManagerClient::GetMockMissionId()
201 {
202 return missionId_;
203 }
SetMockMissionId(int missionId)204 void MockAbilityManagerClient::SetMockMissionId(int missionId)
205 {
206 missionId_ = missionId;
207 }
208 } // namespace AAFwk
209 } // namespace OHOS
210
211 namespace OHOS {
212 namespace AppExecFwk {
MockAbilityContextDeal()213 MockAbilityContextDeal::MockAbilityContextDeal()
214 {
215 hapModInfo_ = nullptr;
216 }
~MockAbilityContextDeal()217 MockAbilityContextDeal::~MockAbilityContextDeal()
218 {}
219
GetHapModuleInfo()220 std::shared_ptr<AppExecFwk::HapModuleInfo> MockAbilityContextDeal::GetHapModuleInfo()
221 {
222 if (hapModInfo_ == nullptr) {
223 hapModInfo_ = std::make_shared<AppExecFwk::HapModuleInfo>();
224 }
225 return hapModInfo_;
226 }
227
MockAbilityContextTest()228 MockAbilityContextTest::MockAbilityContextTest()
229 {
230 startAbilityRunCount_ = 0;
231 }
~MockAbilityContextTest()232 MockAbilityContextTest::~MockAbilityContextTest()
233 {}
234
StartAbility(const AAFwk::Want & want,int requestCode)235 void MockAbilityContextTest::StartAbility(const AAFwk::Want& want, int requestCode)
236 {
237 ++startAbilityRunCount_;
238 }
239
GetStartAbilityRunCount()240 size_t MockAbilityContextTest::GetStartAbilityRunCount()
241 {
242 return startAbilityRunCount_;
243 }
SetStartAbilityRunCount(size_t nCount)244 void MockAbilityContextTest::SetStartAbilityRunCount(size_t nCount)
245 {
246 startAbilityRunCount_ = nCount;
247 }
248
SetToken(const sptr<IRemoteObject> token)249 void MockAbilityContextTest::SetToken(const sptr<IRemoteObject> token)
250 {
251 token_ = token;
252 }
253 } // namespace AppExecFwk
254 } // namespace OHOS
255