1 /*
2  * Copyright (c) 2024-2024 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 <fstream>
17 #include "gtest/gtest.h"
18 #include "iservice_registry.h"
19 #include "string_ex.h"
20 #include "test_log.h"
21 #include "hisysevent_adapter.h"
22 
23 #define private public
24 #include "local_ability_manager.h"
25 #include "mock_sa_realize.h"
26 #undef private
27 using namespace testing;
28 using namespace testing::ext;
29 
30 namespace OHOS {
31 namespace SAFWK {
32 namespace {
33     const std::string TEST_RESOURCE_PATH = "/data/test/resource/safwk/profile/";
34     const std::u16string LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN = u"ohos.localabilitymanager.accessToken";
35     constexpr int SAID = 1499;
36     constexpr int MUT_SAID = 9999;
37     constexpr int INVALID_SAID = -1;
38     constexpr int STARTCODE = 1;
39     constexpr const char* EVENT_ID = "eventId";
40     constexpr const char* NAME = "name";
41     constexpr const char* VALUE = "value";
42     constexpr const char* EXTRA_DATA_ID = "extraDataId";
43 }
44 
45 class LocalAbilityManagerStubTest : public testing::Test {
46 public:
47     static void SetUpTestCase();
48     static void TearDownTestCase();
49     void SetUp();
50     void TearDown();
51 };
52 
SetUpTestCase()53 void LocalAbilityManagerStubTest::SetUpTestCase()
54 {
55     DTEST_LOG << "SetUpTestCase" << std::endl;
56 }
57 
TearDownTestCase()58 void LocalAbilityManagerStubTest::TearDownTestCase()
59 {
60     DTEST_LOG << "TearDownTestCase" << std::endl;
61 }
62 
SetUp()63 void LocalAbilityManagerStubTest::SetUp()
64 {
65     DTEST_LOG << "SetUp" << std::endl;
66 }
67 
TearDown()68 void LocalAbilityManagerStubTest::TearDown()
69 {
70     DTEST_LOG << "TearDown" << std::endl;
71 }
72 
73 /**
74  * @tc.name: OnRemoteRequest001
75  * @tc.desc: OnRemoteRequest001
76  * @tc.type: FUNC
77  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest001, TestSize.Level2)78 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest001, TestSize.Level2)
79 {
80     DTEST_LOG << "OnRemoteRequest001 start" << std::endl;
81     MessageParcel data;
82     MessageParcel reply;
83     MessageOption option;
84     std::string deviceId = "";
85     LocalAbilityManager::SystemAbilityListener *sysListener =
86         new LocalAbilityManager::SystemAbilityListener(SAID);
87     sysListener->OnAddSystemAbility(SAID, deviceId);
88     int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(0, data, reply, option);
89     delete sysListener;
90     EXPECT_NE(result, ERR_NONE);
91     DTEST_LOG << "OnRemoteRequest001 end" << std::endl;
92 }
93 
94 /**
95  * @tc.name: OnRemoteRequest002
96  * @tc.desc: OnRemoteRequest002
97  * @tc.type: FUNC
98  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest002, TestSize.Level2)99 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest002, TestSize.Level2)
100 {
101     DTEST_LOG << "OnRemoteRequest002 start" << std::endl;
102     MessageParcel data;
103     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
104     MessageParcel reply;
105     MessageOption option;
106     std::string deviceId = "";
107     LocalAbilityManager::SystemAbilityListener *sysListener =
108         new LocalAbilityManager::SystemAbilityListener(INVALID_SAID);
109     sysListener->OnAddSystemAbility(INVALID_SAID, deviceId);
110     int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(0, data, reply, option);
111     delete sysListener;
112     EXPECT_NE(result, ERR_NONE);
113     DTEST_LOG << "OnRemoteRequest002 end" << std::endl;
114 }
115 
116 /**
117  * @tc.name: OnRemoteRequest003
118  * @tc.desc: OnRemoteRequest003
119  * @tc.type: FUNC
120  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest003, TestSize.Level2)121 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest003, TestSize.Level2)
122 {
123     DTEST_LOG << "OnRemoteRequest003 start" << std::endl;
124     MessageParcel data;
125     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
126     MessageParcel reply;
127     MessageOption option;
128     std::string deviceId = "";
129     LocalAbilityManager::SystemAbilityListener *sysListener =
130         new LocalAbilityManager::SystemAbilityListener(INVALID_SAID);
131     sysListener->OnRemoveSystemAbility(INVALID_SAID, deviceId);
132     int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
133     delete sysListener;
134     EXPECT_NE(result, ERR_NONE);
135     DTEST_LOG << "OnRemoteRequest003 end" << std::endl;
136 }
137 
138 /**
139  * @tc.name: OnRemoteRequest004
140  * @tc.desc: OnRemoteRequest004
141  * @tc.type: FUNC
142  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest004, TestSize.Level2)143 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest004, TestSize.Level2)
144 {
145     DTEST_LOG << "OnRemoteRequest004 start" << std::endl;
146     MessageParcel data;
147     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
148     data.WriteInt32(STARTCODE);
149     MessageParcel reply;
150     MessageOption option;
151     std::string deviceId = "";
152     LocalAbilityManager::SystemAbilityListener *sysListener =
153         new LocalAbilityManager::SystemAbilityListener(SAID);
154     sysListener->OnRemoveSystemAbility(SAID, deviceId);
155     int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
156     delete sysListener;
157     EXPECT_EQ(result, ERR_NULL_OBJECT);
158     DTEST_LOG << "OnRemoteRequest004 end" << std::endl;
159 }
160 
161 /**
162  * @tc.name: OnRemoteRequest005
163  * @tc.desc: OnRemoteRequest005
164  * @tc.type: FUNC
165  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest005, TestSize.Level2)166 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest005, TestSize.Level2)
167 {
168     DTEST_LOG << "OnRemoteRequest005 start" << std::endl;
169     MessageParcel data;
170     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
171     data.WriteInt32(STARTCODE);
172     std::string eventStr = "test";
173     data.WriteString(eventStr);
174     MessageParcel reply;
175     MessageOption option;
176     std::string deviceId = "";
177     LocalAbilityManager::SystemAbilityListener *sysListener =
178         new LocalAbilityManager::SystemAbilityListener(SAID);
179     sysListener->OnRemoveSystemAbility(SAID, deviceId);
180     int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
181     delete sysListener;
182     EXPECT_EQ(result, ERR_NONE);
183     DTEST_LOG << "OnRemoteRequest005 end" << std::endl;
184 }
185 
186 /**
187  * @tc.name: OnRemoteRequest006
188  * @tc.desc: OnRemoteRequest006
189  * @tc.type: FUNC
190  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest006, TestSize.Level2)191 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest006, TestSize.Level2)
192 {
193     DTEST_LOG << "OnRemoteRequest006 start" << std::endl;
194     MessageParcel data;
195     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
196     data.WriteInt32(STARTCODE);
197     std::string eventStr = "test";
198     data.WriteString(eventStr);
199     MessageParcel reply;
200     MessageOption option;
201     uint32_t code = 1;
202     auto iter = LocalAbilityManager::GetInstance().memberFuncMap_.find(code);
203     LocalAbilityManager::GetInstance().OnRemoteRequest(code, data, reply, option);
204     EXPECT_NE(iter, LocalAbilityManager::GetInstance().memberFuncMap_.end());
205     DTEST_LOG << "OnRemoteRequest006 end" << std::endl;
206 }
207 
208 /**
209  * @tc.name: OnRemoteRequest007
210  * @tc.desc: OnRemoteRequest007
211  * @tc.type: FUNC
212  */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest007, TestSize.Level2)213 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest007, TestSize.Level2)
214 {
215     DTEST_LOG << "OnRemoteRequest007 start" << std::endl;
216     MessageParcel data;
217     data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
218     data.WriteInt32(STARTCODE);
219     std::string eventStr = "test";
220     data.WriteString(eventStr);
221     MessageParcel reply;
222     MessageOption option;
223     uint32_t code = 0;
224     auto iter = LocalAbilityManager::GetInstance().memberFuncMap_.find(code);
225     LocalAbilityManager::GetInstance().OnRemoteRequest(code, data, reply, option);
226     EXPECT_EQ(iter, LocalAbilityManager::GetInstance().memberFuncMap_.end());
227     DTEST_LOG << "OnRemoteRequest007 end" << std::endl;
228 }
229 
230 /**
231  * @tc.name: StartAbilityInner001
232  * @tc.desc: test StartAbilityInner with invalid SaID
233  * @tc.type: FUNC
234  * @tc.require:I6LSSX
235  */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner001, TestSize.Level2)236 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner001, TestSize.Level2)
237 {
238     DTEST_LOG << "StartAbilityInner001 start" << std::endl;
239     MessageParcel data;
240     data.WriteInt32(INVALID_SAID);
241     MessageParcel reply;
242     int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
243     EXPECT_EQ(ret, ERR_NULL_OBJECT);
244     DTEST_LOG << "StartAbilityInner001 end" << std::endl;
245 }
246 
247 /**
248  * @tc.name: StartAbilityInner002
249  * @tc.desc: test StartAbilityInner with data.ReadString() is empty
250  * @tc.type: FUNC
251  * @tc.require:I6LSSX
252  */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner002, TestSize.Level2)253 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner002, TestSize.Level2)
254 {
255     DTEST_LOG << "StartAbilityInner002 start" << std::endl;
256     MessageParcel data;
257     data.WriteInt32(STARTCODE);
258     MessageParcel reply;
259     int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
260     EXPECT_EQ(ret, ERR_NULL_OBJECT);
261     DTEST_LOG << "StartAbilityInner002 end" << std::endl;
262 }
263 
264 /**
265  * @tc.name: StartAbilityInner003
266  * @tc.desc: test StartAbilityInner with data.ReadString() is not  empty
267  * @tc.type: FUNC
268  * @tc.require:I6LSSX
269  */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner003, TestSize.Level2)270 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner003, TestSize.Level2)
271 {
272     DTEST_LOG << "StartAbilityInner003 start" << std::endl;
273     MessageParcel data;
274     data.WriteInt32(STARTCODE);
275     std::string eventStr = "test";
276     data.WriteString(eventStr);
277     MessageParcel reply;
278     int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
279     EXPECT_EQ(ret, ERR_NONE);
280     DTEST_LOG << "StartAbilityInner003 end" << std::endl;
281 }
282 
283 /**
284  * @tc.name: StopAbilityInner001
285  * @tc.desc: test StopAbilityInner with invalid SaID
286  * @tc.type: FUNC
287  * @tc.require:I6LSSX
288  */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner001, TestSize.Level2)289 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner001, TestSize.Level2)
290 {
291     DTEST_LOG << "StopAbilityInner001 start" << std::endl;
292     MessageParcel data;
293     data.WriteInt32(INVALID_SAID);
294     MessageParcel reply;
295     int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
296     EXPECT_EQ(ret, ERR_NULL_OBJECT);
297     DTEST_LOG << "StopAbilityInner001 end" << std::endl;
298 }
299 
300 /**
301  * @tc.name: StopAbilityInner002
302  * @tc.desc: test StopAbilityInner with data.ReadString() is empty
303  * @tc.type: FUNC
304  * @tc.require:I6LSSX
305  */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner002, TestSize.Level2)306 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner002, TestSize.Level2)
307 {
308     DTEST_LOG << "StopAbilityInner002 start" << std::endl;
309     MessageParcel data;
310     data.WriteInt32(STARTCODE);
311     MessageParcel reply;
312     int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
313     EXPECT_EQ(ret, ERR_NULL_OBJECT);
314     DTEST_LOG << "StopAbilityInner002 end" << std::endl;
315 }
316 
317 /**
318  * @tc.name: StopAbilityInner003
319  * @tc.desc: test StopAbilityInner with data.ReadString() is empty
320  * @tc.type: FUNC
321  * @tc.require:I6LSSX
322  */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner003, TestSize.Level2)323 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner003, TestSize.Level2)
324 {
325     DTEST_LOG << "StopAbilityInner003 start" << std::endl;
326     MessageParcel data;
327     data.WriteInt32(STARTCODE);
328     std::string eventStr = "test";
329     data.WriteString(eventStr);
330     MessageParcel reply;
331     int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
332     EXPECT_EQ(ret, ERR_NONE);
333     DTEST_LOG << "StopAbilityInner003 end" << std::endl;
334 }
335 
336 /**
337  * @tc.name: ActiveAbilityInner001
338  * @tc.desc: test ActiveAbilityInner with invalid SaID
339  * @tc.type: FUNC
340  * @tc.require:I6LSSX
341  */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner001, TestSize.Level2)342 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner001, TestSize.Level2)
343 {
344     DTEST_LOG << "ActiveAbilityInner001 start" << std::endl;
345     MessageParcel data;
346     data.WriteInt32(INVALID_SAID);
347     MessageParcel reply;
348     int32_t ret = LocalAbilityManager::GetInstance().ActiveAbilityInner(data, reply);
349     EXPECT_EQ(ret, ERR_NULL_OBJECT);
350     DTEST_LOG << "ActiveAbilityInner001 end" << std::endl;
351 }
352 
353 /**
354  * @tc.name: ActiveAbilityInner002
355  * @tc.desc: test ActiveAbilityInner with valid SaID
356  * @tc.type: FUNC
357  * @tc.require:I6LSSX
358  */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner002, TestSize.Level2)359 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner002, TestSize.Level2)
360 {
361     DTEST_LOG << "ActiveAbilityInner002 start" << std::endl;
362     MessageParcel data;
363     data.WriteInt32(STARTCODE);
364     MessageParcel reply;
365     int32_t ret = LocalAbilityManager::GetInstance().ActiveAbilityInner(data, reply);
366     EXPECT_EQ(ret, ERR_NONE);
367     DTEST_LOG << "ActiveAbilityInner002 end" << std::endl;
368 }
369 
370 /**
371  * @tc.name: IdleAbilityInner001
372  * @tc.desc: test IdleAbilityInner with invalid SaID
373  * @tc.type: FUNC
374  * @tc.require:I6LSSX
375  */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner001, TestSize.Level2)376 HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner001, TestSize.Level2)
377 {
378     DTEST_LOG << "IdleAbilityInner001 start" << std::endl;
379     MessageParcel data;
380     data.WriteInt32(INVALID_SAID);
381     MessageParcel reply;
382     int32_t ret = LocalAbilityManager::GetInstance().IdleAbilityInner(data, reply);
383     EXPECT_EQ(ret, ERR_NULL_OBJECT);
384     DTEST_LOG << "IdleAbilityInner001 end" << std::endl;
385 }
386 
387 /**
388  * @tc.name: IdleAbilityInner002
389  * @tc.desc: test IdleAbilityInner with valid SaID
390  * @tc.type: FUNC
391  * @tc.require:I6LSSX
392  */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner002, TestSize.Level2)393 HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner002, TestSize.Level2)
394 {
395     DTEST_LOG << "IdleAbilityInner002 start" << std::endl;
396     MessageParcel data;
397     data.WriteInt32(STARTCODE);
398     MessageParcel reply;
399     int32_t ret = LocalAbilityManager::GetInstance().IdleAbilityInner(data, reply);
400     EXPECT_EQ(ret, ERR_NONE);
401     DTEST_LOG << "IdleAbilityInner002 end" << std::endl;
402 }
403 
404 /**
405  * @tc.name: OnStopAbility001
406  * @tc.desc: test OnStopAbility, cover function with valid SaID
407  * @tc.type: FUNC
408  * @tc.require: I73XRZ
409  */
HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility001, TestSize.Level2)410 HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility001, TestSize.Level2)
411 {
412     DTEST_LOG << "OnStopAbility001 start" << std::endl;
413     int32_t systemAbilityId = 1;
414     bool ret = LocalAbilityManager::GetInstance().OnStopAbility(systemAbilityId);
415     EXPECT_FALSE(ret);
416     DTEST_LOG << "OnStopAbility001 end" << std::endl;
417 }
418 
419 /**
420  * @tc.name: OnStopAbility002
421  * @tc.desc: test OnStopAbility with said is in abilityMap_
422  * @tc.type: FUNC
423  * @tc.require: I7G7DL
424  */
HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility002, TestSize.Level2)425 HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility002, TestSize.Level2)
426 {
427     DTEST_LOG << "OnStopAbility002 start" << std::endl;
428     MockSaRealize *mockSa = new MockSaRealize(SAID, false);
429     mockSa->abilityState_ = SystemAbilityState::NOT_LOADED;
430     LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
431     bool ret = LocalAbilityManager::GetInstance().OnStopAbility(SAID);
432     delete mockSa;
433     EXPECT_TRUE(ret);
434     DTEST_LOG << "OnStopAbility002 end" << std::endl;
435 }
436 
437 /**
438  * @tc.name: ActiveAbility001
439  * @tc.desc: test ActiveAbility, cover function with valid SaID
440  * @tc.type: FUNC
441  * @tc.require: I73XRZ
442  */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility001, TestSize.Level2)443 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility001, TestSize.Level2)
444 {
445     DTEST_LOG << "ActiveAbility001 start" << std::endl;
446     int32_t systemAbilityId = 1;
447     nlohmann::json activeReason;
448     bool ret = LocalAbilityManager::GetInstance().ActiveAbility(systemAbilityId, activeReason);
449     // cover StartPhaseTasks
450     std::list<SystemAbility*> systemAbilityList;
451     LocalAbilityManager::GetInstance().StartPhaseTasks(systemAbilityList);
452     EXPECT_FALSE(ret);
453     DTEST_LOG << "ActiveAbility001 end" << std::endl;
454 }
455 
456 /**
457  * @tc.name: ActiveAbility002
458  * @tc.desc: test ActiveAbility with sa is existed
459  * @tc.type: FUNC
460  * @tc.require: I7G7DL
461  */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility002, TestSize.Level2)462 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility002, TestSize.Level2)
463 {
464     DTEST_LOG << "ActiveAbility002 start" << std::endl;
465     nlohmann::json activeReason;
466     MockSaRealize *mockSa = new MockSaRealize(SAID, false);
467     LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
468     mockSa->abilityState_ = SystemAbilityState::ACTIVE;
469     bool ret = LocalAbilityManager::GetInstance().ActiveAbility(SAID, activeReason);
470     delete mockSa;
471     EXPECT_TRUE(ret);
472     DTEST_LOG << "ActiveAbility002 end" << std::endl;
473 }
474 
475 /**
476  * @tc.name: IdleAbility001
477  * @tc.desc: test IdleAbility, cover function
478  * @tc.type: FUNC
479  * @tc.require: I73XRZ
480  */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbility001, TestSize.Level2)481 HWTEST_F(LocalAbilityManagerStubTest, IdleAbility001, TestSize.Level2)
482 {
483     DTEST_LOG << "IdleAbility001 start" << std::endl;
484     int32_t systemAbilityId = 1;
485     nlohmann::json activeReason;
486     int32_t delayTime = 0;
487     bool ret = LocalAbilityManager::GetInstance().IdleAbility(systemAbilityId, activeReason, delayTime);
488     // cover WaitForTasks
489     LocalAbilityManager::GetInstance().WaitForTasks();
490     // cover FindAndStartPhaseTasks
491     LocalAbilityManager::GetInstance().FindAndStartPhaseTasks(systemAbilityId);
492     EXPECT_FALSE(ret);
493     DTEST_LOG << "IdleAbility001 end" << std::endl;
494 }
495 
496 /**
497  * @tc.name: IdleAbility002
498  * @tc.desc: test IdleAbility with sa is existed
499  * @tc.type: FUNC
500  * @tc.require: I7G7DL
501  */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbility002, TestSize.Level2)502 HWTEST_F(LocalAbilityManagerStubTest, IdleAbility002, TestSize.Level2)
503 {
504     DTEST_LOG << "IdleAbility002 start" << std::endl;
505     nlohmann::json idleReason;
506     MockSaRealize *mockSa = new MockSaRealize(SAID, false);
507     LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
508     mockSa->abilityState_ = SystemAbilityState::IDLE;
509     int delayTime = 0;
510     bool ret = LocalAbilityManager::GetInstance().IdleAbility(SAID, idleReason, delayTime);
511     delete mockSa;
512     EXPECT_TRUE(ret);
513     DTEST_LOG << "IdleAbility002 end" << std::endl;
514 }
515 
516 /**
517  * @tc.name: JsonToOnDemandReason001
518  * @tc.desc: test JsonToOnDemandReason, with assignments
519  * @tc.type: FUNC
520  * @tc.require: I73XRZ
521  */
HWTEST_F(LocalAbilityManagerStubTest, JsonToOnDemandReason001, TestSize.Level2)522 HWTEST_F(LocalAbilityManagerStubTest, JsonToOnDemandReason001, TestSize.Level2)
523 {
524     DTEST_LOG << "JsonToOnDemandReason001 start" << std::endl;
525     SystemAbilityOnDemandReason onDemandStartReason;
526     nlohmann::json reasonJson;
527     reasonJson[EVENT_ID] = 1;
528     reasonJson[NAME] = "test";
529     reasonJson[VALUE] = "test";
530     reasonJson[EXTRA_DATA_ID] = 1;
531     onDemandStartReason.SetId(reasonJson[EVENT_ID]);
532     onDemandStartReason.SetName(reasonJson[NAME]);
533     onDemandStartReason.SetValue(reasonJson[VALUE]);
534     onDemandStartReason.SetExtraDataId(reasonJson[EXTRA_DATA_ID]);
535     SystemAbilityOnDemandReason ret = LocalAbilityManager::GetInstance().JsonToOnDemandReason(reasonJson);
536     EXPECT_EQ(ret.extraDataId_, onDemandStartReason.extraDataId_);
537     DTEST_LOG << "JsonToOnDemandReason001 end" << std::endl;
538 }
539 
540 /**
541  * @tc.name: FfrtDumperProc001
542  * @tc.desc: test FfrtDumperProc
543  * @tc.type: FUNC
544  * @tc.require: I7G7DL
545  */
HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProc001, TestSize.Level2)546 HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProc001, TestSize.Level2)
547 {
548     DTEST_LOG << "FfrtDumperProc001 start" << std::endl;
549     std::string ffrtDumperInfo;
550     bool result = LocalAbilityManager::GetInstance().FfrtDumperProc(ffrtDumperInfo);
551     EXPECT_TRUE(result);
552     DTEST_LOG << "FfrtDumperProc001 end" << std::endl;
553 }
554 
555 /**
556  * @tc.name: SendStrategyToSA001
557  * @tc.desc: test SendStrategyToSA001, cover function with valid SaID
558  * @tc.type: FUNC
559  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA001, TestSize.Level2)560 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA001, TestSize.Level2)
561 {
562     DTEST_LOG << "SendStrategyToSA001 start" << std::endl;
563     int32_t systemAbilityId = 1;
564     std::string action = "";
565     bool ret = LocalAbilityManager::GetInstance().SendStrategyToSA(1, systemAbilityId, 1, action);
566     EXPECT_FALSE(ret);
567     DTEST_LOG << "SendStrategyToSA001 end" << std::endl;
568 }
569 
570 /**
571  * @tc.name: SendStrategyToSA002
572  * @tc.desc: test SendStrategyToSA with said is in abilityMap_
573  * @tc.type: FUNC
574  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA002, TestSize.Level2)575 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA002, TestSize.Level2)
576 {
577     DTEST_LOG << "SendStrategyToSA002 start" << std::endl;
578     MockSaRealize *mockSa = new MockSaRealize(SAID, false);
579     mockSa->abilityState_ = SystemAbilityState::NOT_LOADED;
580     LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
581     std::string action = "";
582     bool ret = LocalAbilityManager::GetInstance().SendStrategyToSA(1, SAID, 1, action);
583     delete mockSa;
584     EXPECT_TRUE(ret);
585     DTEST_LOG << "SendStrategyToSA002 end" << std::endl;
586 }
587 
588 /**
589  * @tc.name: IpcStatCmdProc001
590  * @tc.desc: test IpcStatCmdProc001, cover function with valid fd and valid cmd
591  * @tc.type: FUNC
592  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc001, TestSize.Level2)593 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc001, TestSize.Level2)
594 {
595     DTEST_LOG << "IpcStatCmdProc001 start" << std::endl;
596     int32_t fd = 1;
597     int32_t cmd = 0;
598     bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
599     EXPECT_TRUE(ret);
600     DTEST_LOG << "IpcStatCmdProc001 end" << std::endl;
601 }
602 
603 /**
604  * @tc.name: IpcStatCmdProc002
605  * @tc.desc: test IpcStatCmdProc002, cover function with valid fd and invalid cmd
606  * @tc.type: FUNC
607  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc002, TestSize.Level2)608 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc002, TestSize.Level2)
609 {
610     DTEST_LOG << "IpcStatCmdProc002 start" << std::endl;
611     int32_t fd = 1;
612     int32_t cmd = -1;
613     bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
614     EXPECT_FALSE(ret);
615     DTEST_LOG << "IpcStatCmdProc002 end" << std::endl;
616 }
617 
618 /**
619  * @tc.name: IpcStatCmdProc003
620  * @tc.desc: test IpcStatCmdProc003, cover function with invalid fd and valid cmd
621  * @tc.type: FUNC
622  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc003, TestSize.Level2)623 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc003, TestSize.Level2)
624 {
625     DTEST_LOG << "IpcStatCmdProc003 start" << std::endl;
626     int32_t fd = -1;
627     int32_t cmd = 0;
628     bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
629     EXPECT_FALSE(ret);
630     DTEST_LOG << "IpcStatCmdProc003 end" << std::endl;
631 }
632 
633 /**
634  * @tc.name: IpcStatCmdProc004
635  * @tc.desc: test IpcStatCmdProc004, cover function with invalid fd and invalid cmd
636  * @tc.type: FUNC
637  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc004, TestSize.Level2)638 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc004, TestSize.Level2)
639 {
640     DTEST_LOG << "IpcStatCmdProc004 start" << std::endl;
641     int32_t fd = -1;
642     int32_t cmd = -1;
643     bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
644     EXPECT_FALSE(ret);
645     DTEST_LOG << "IpcStatCmdProc004 end" << std::endl;
646 }
647 
648 /**
649  * @tc.name: CheckPermission001
650  * @tc.desc: test CheckPermission001
651  * @tc.type: FUNC
652  */
HWTEST_F(LocalAbilityManagerStubTest, CheckPermission001, TestSize.Level2)653 HWTEST_F(LocalAbilityManagerStubTest, CheckPermission001, TestSize.Level2)
654 {
655     DTEST_LOG << "CheckPermission001 start" << std::endl;
656     uint32_t code = static_cast<uint32_t>(SafwkInterfaceCode::START_ABILITY_TRANSACTION);
657     bool result = LocalAbilityManager::GetInstance().CheckPermission(code);
658     EXPECT_TRUE(result);
659     DTEST_LOG << "CheckPermission001 end" << std::endl;
660 }
661 
662 /**
663  * @tc.name: CheckPermission002
664  * @tc.desc: test CheckPermission002
665  * @tc.type: FUNC
666  */
HWTEST_F(LocalAbilityManagerStubTest, CheckPermission002, TestSize.Level2)667 HWTEST_F(LocalAbilityManagerStubTest, CheckPermission002, TestSize.Level2)
668 {
669     DTEST_LOG << "CheckPermission002 start" << std::endl;
670     uint32_t code = static_cast<uint32_t>(SafwkInterfaceCode::SYSTEM_ABILITY_EXT_TRANSACTION);
671     bool result = LocalAbilityManager::GetInstance().CheckPermission(code);
672     EXPECT_TRUE(result);
673     DTEST_LOG << "CheckPermission002 end" << std::endl;
674 }
675 
676 /**
677  * @tc.name: SystemAbilityExtProc001
678  * @tc.desc: test SystemAbilityExtProc001
679  * @tc.type: FUNC
680  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc001, TestSize.Level2)681 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc001, TestSize.Level2)
682 {
683     DTEST_LOG << "SystemAbilityExtProc001 start" << std::endl;
684     std::string extension = "ext1";
685     SystemAbilityExtensionPara callback;
686     bool isAsync = false;
687     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProc(extension, INVALID_SAID, &callback, isAsync);
688     EXPECT_FALSE(ret == ERR_NONE);
689     DTEST_LOG << "SystemAbilityExtProc001 end" << std::endl;
690 }
691 
692 /**
693  * @tc.name: SystemAbilityExtProc002
694  * @tc.desc: test SystemAbilityExtProc002
695  * @tc.type: FUNC
696  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc002, TestSize.Level2)697 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc002, TestSize.Level2)
698 {
699     DTEST_LOG << "SystemAbilityExtProc002 start" << std::endl;
700     std::string extension = "ext1";
701     SystemAbilityExtensionPara callback;
702     bool isAsync = false;
703 
704     std::string deviceId = "";
705     MockSaRealize *sysAby = new MockSaRealize(MUT_SAID, false);
706     LocalAbilityManager::GetInstance().abilityMap_[MUT_SAID] = sysAby;
707     LocalAbilityManager::GetInstance().NotifyAbilityListener(SAID, MUT_SAID, deviceId, STARTCODE);
708     LocalAbilityManager::GetInstance().abilityMap_[SAID] = sysAby;
709     LocalAbilityManager::GetInstance().NotifyAbilityListener(SAID, MUT_SAID, deviceId, STARTCODE);
710     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProc(extension, SAID, &callback, isAsync);
711     EXPECT_TRUE(ret == ERR_NONE);
712     LocalAbilityManager::GetInstance().abilityMap_.clear();
713     delete sysAby;
714     DTEST_LOG << "SystemAbilityExtProc002 end" << std::endl;
715 }
716 
717 /**
718  * @tc.name: SendStrategyToSAInner001
719  * @tc.desc: test SendStrategyToSAInner.
720  * @tc.type: FUNC
721  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner001, TestSize.Level2)722 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner001, TestSize.Level2)
723 {
724     DTEST_LOG << "SendStrategyToSAInner001 start" << std::endl;
725     MessageParcel data;
726     MessageParcel reply;
727     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
728     EXPECT_EQ(ret, ERR_NULL_OBJECT);
729     DTEST_LOG << "SendStrategyToSAInner001 end" << std::endl;
730 }
731 
732 /**
733  * @tc.name: SendStrategyToSAInner002
734  * @tc.desc: test SendStrategyToSAInner.
735  * @tc.type: FUNC
736  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner002, TestSize.Level2)737 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner002, TestSize.Level2)
738 {
739     DTEST_LOG << "SendStrategyToSAInner002 start" << std::endl;
740     MessageParcel data;
741     MessageParcel reply;
742     int type = 1;
743     data.WriteInt32(type);
744     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
745     EXPECT_EQ(ret, ERR_NULL_OBJECT);
746     DTEST_LOG << "SendStrategyToSAInner002 end" << std::endl;
747 }
748 
749 /**
750  * @tc.name: SendStrategyToSAInner003
751  * @tc.desc: test SendStrategyToSAInner.
752  * @tc.type: FUNC
753  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner003, TestSize.Level2)754 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner003, TestSize.Level2)
755 {
756     DTEST_LOG << "SendStrategyToSAInner003 start" << std::endl;
757     MessageParcel data;
758     MessageParcel reply;
759     int type = 1;
760     data.WriteInt32(type);
761     int32_t saId = -1;
762     data.WriteInt32(saId);
763     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
764     EXPECT_EQ(ret, ERR_NULL_OBJECT);
765     DTEST_LOG << "SendStrategyToSAInner003 end" << std::endl;
766 }
767 
768 /**
769  * @tc.name: SendStrategyToSAInner004
770  * @tc.desc: test SendStrategyToSAInner.
771  * @tc.type: FUNC
772  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner004, TestSize.Level2)773 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner004, TestSize.Level2)
774 {
775     DTEST_LOG << "SendStrategyToSAInner004 start" << std::endl;
776     MessageParcel data;
777     MessageParcel reply;
778     int type = 1;
779     data.WriteInt32(type);
780     int32_t saId = 1;
781     data.WriteInt32(saId);
782     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
783     EXPECT_EQ(ret, ERR_NULL_OBJECT);
784     DTEST_LOG << "SendStrategyToSAInner004 end" << std::endl;
785 }
786 
787 /**
788  * @tc.name: SendStrategyToSAInner005
789  * @tc.desc: test SendStrategyToSAInner.
790  * @tc.type: FUNC
791  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner005, TestSize.Level2)792 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner005, TestSize.Level2)
793 {
794     DTEST_LOG << "SendStrategyToSAInner005 start" << std::endl;
795     MessageParcel data;
796     MessageParcel reply;
797     int type = 1;
798     data.WriteInt32(type);
799     int32_t saId = 1;
800     data.WriteInt32(saId);
801     int level = 1;
802     data.WriteInt32(level);
803     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
804     EXPECT_EQ(ret, ERR_NULL_OBJECT);
805     DTEST_LOG << "SendStrategyToSAInner005 end" << std::endl;
806 }
807 
808 /**
809  * @tc.name: SendStrategyToSAInner006
810  * @tc.desc: test SendStrategyToSAInner.
811  * @tc.type: FUNC
812  */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner006, TestSize.Level2)813 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner006, TestSize.Level2)
814 {
815     DTEST_LOG << "SendStrategyToSAInner006 start" << std::endl;
816     MessageParcel data;
817     MessageParcel reply;
818     int type = 1;
819     data.WriteInt32(type);
820     int32_t saId = 1;
821     data.WriteInt32(saId);
822     int level = 1;
823     data.WriteInt32(level);
824     std::string action = "";
825     data.WriteString(action);
826     int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
827     EXPECT_EQ(ret, ERR_NULL_OBJECT);
828     DTEST_LOG << "SendStrategyToSAInner006 end" << std::endl;
829 }
830 
831 /**
832  * @tc.name: IpcStatCmdProcInner001
833  * @tc.desc: test IpcStatCmdProcInner.
834  * @tc.type: FUNC
835  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner001, TestSize.Level2)836 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner001, TestSize.Level2)
837 {
838     DTEST_LOG << "IpcStatCmdProcInner001 start" << std::endl;
839     MessageParcel data;
840     MessageParcel reply;
841     int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
842     EXPECT_EQ(ret, ERR_NULL_OBJECT);
843     DTEST_LOG << "IpcStatCmdProcInner001 end" << std::endl;
844 }
845 
846 /**
847  * @tc.name: IpcStatCmdProcInner002
848  * @tc.desc: test IpcStatCmdProcInner.
849  * @tc.type: FUNC
850  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner002, TestSize.Level2)851 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner002, TestSize.Level2)
852 {
853     DTEST_LOG << "IpcStatCmdProcInner002 start" << std::endl;
854     MessageParcel data;
855     MessageParcel reply;
856     int32_t fd = 1;
857     data.WriteFileDescriptor(fd);
858     int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
859     EXPECT_EQ(ret, ERR_NULL_OBJECT);
860     DTEST_LOG << "IpcStatCmdProcInner002 end" << std::endl;
861 }
862 
863 /**
864  * @tc.name: IpcStatCmdProcInner003
865  * @tc.desc: test IpcStatCmdProcInner.
866  * @tc.type: FUNC
867  */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner003, TestSize.Level2)868 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner003, TestSize.Level2)
869 {
870     DTEST_LOG << "IpcStatCmdProcInner003 start" << std::endl;
871     MessageParcel data;
872     MessageParcel reply;
873     int32_t fd = 1;
874     int cmd = -1;
875     data.WriteInt32(cmd);
876     data.WriteFileDescriptor(fd);
877     int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
878     EXPECT_EQ(ret, ERR_NULL_OBJECT);
879     DTEST_LOG << "IpcStatCmdProcInner003 end" << std::endl;
880 }
881 
882 /**
883  * @tc.name: FfrtDumperProcInner001
884  * @tc.desc: test IpcStatCmdProcInner.
885  * @tc.type: FUNC
886  */
HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProcInner001, TestSize.Level2)887 HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProcInner001, TestSize.Level2)
888 {
889     DTEST_LOG << "FfrtDumperProcInner001 start" << std::endl;
890     MessageParcel data;
891     MessageParcel reply;
892     std::string ffrtDumperInfo = "Test Ffrt Dumper Info";
893     int32_t ret = LocalAbilityManager::GetInstance().FfrtDumperProcInner(data, reply);
894     EXPECT_EQ(ret, ERR_NONE);
895     DTEST_LOG << "FfrtDumperProcInner001 end" << std::endl;
896 }
897 
898 /**
899  * @tc.name: SystemAbilityExtProcInner001
900  * @tc.desc: test IpcStatCmdProcInner.
901  * @tc.type: FUNC
902  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner001, TestSize.Level2)903 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner001, TestSize.Level2)
904 {
905     DTEST_LOG << "SystemAbilityExtProcInner001 start" << std::endl;
906     MessageParcel data;
907     MessageParcel reply;
908     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
909     EXPECT_EQ(ret, INVALID_DATA);
910     DTEST_LOG << "SystemAbilityExtProcInner001 end" << std::endl;
911 }
912 
913 /**
914  * @tc.name: SystemAbilityExtProcInner002
915  * @tc.desc: test IpcStatCmdProcInner.
916  * @tc.type: FUNC
917  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner002, TestSize.Level2)918 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner002, TestSize.Level2)
919 {
920     DTEST_LOG << "SystemAbilityExtProcInner002 start" << std::endl;
921     MessageParcel data;
922     MessageParcel reply;
923     int saId = 1;
924     data.WriteInt32(saId);
925     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
926     EXPECT_EQ(ret, INVALID_DATA);
927     DTEST_LOG << "SystemAbilityExtProcInner002 end" << std::endl;
928 }
929 
930 /**
931  * @tc.name: SystemAbilityExtProcInner003
932  * @tc.desc: test IpcStatCmdProcInner.
933  * @tc.type: FUNC
934  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner003, TestSize.Level2)935 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner003, TestSize.Level2)
936 {
937     DTEST_LOG << "SystemAbilityExtProcInner003 start" << std::endl;
938     MessageParcel data;
939     MessageParcel reply;
940     int saId = -1;
941     data.WriteInt32(saId);
942     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
943     EXPECT_EQ(ret, INVALID_DATA);
944     DTEST_LOG << "SystemAbilityExtProcInner003 end" << std::endl;
945 }
946 
947 /**
948  * @tc.name: SystemAbilityExtProcInner004
949  * @tc.desc: test IpcStatCmdProcInner.
950  * @tc.type: FUNC
951  */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner004, TestSize.Level2)952 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner004, TestSize.Level2)
953 {
954     DTEST_LOG << "SystemAbilityExtProcInner004 start" << std::endl;
955     MessageParcel data;
956     MessageParcel reply;
957     int saId = 1;
958     data.WriteInt32(saId);
959     std::string extension = "TestExtension";
960     data.WriteString(extension);
961     int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
962     EXPECT_EQ(ret, INVALID_DATA);
963     DTEST_LOG << "SystemAbilityExtProcInner004 end" << std::endl;
964 }
965 } // namespace SAFWK
966 } // namespace OHOS