1 /*
2  * Copyright (c) 2022-2023 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 
18 #define private public
19 #include "mission_info_mgr.h"
20 #undef private
21 
22 #include "ability_info.h"
23 #include "ability_manager_errors.h"
24 
25 using namespace testing::ext;
26 using namespace OHOS::AppExecFwk;
27 
28 namespace OHOS {
29 namespace AAFwk {
30 class MissionInfoMgrTest : public testing::Test {
31 public:
32     static void SetUpTestCase(void);
33     static void TearDownTestCase(void);
34     void SetUp();
35     void TearDown();
36 };
37 
SetUpTestCase(void)38 void MissionInfoMgrTest::SetUpTestCase(void)
39 {}
TearDownTestCase(void)40 void MissionInfoMgrTest::TearDownTestCase(void)
41 {}
SetUp(void)42 void MissionInfoMgrTest::SetUp(void)
43 {}
TearDown(void)44 void MissionInfoMgrTest::TearDown(void)
45 {}
46 
47 /*
48  * Feature: MissionInfoMgr
49  * Function: GenerateMissionId
50  * SubFunction: NA
51  * FunctionPoints: MissionInfoMgr GenerateMissionId
52  * EnvConditions: NA
53  * CaseDescription: Verify GenerateMissionId
54  */
55 HWTEST_F(MissionInfoMgrTest, GenerateMissionId_001, TestSize.Level1)
56 {
57     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
58     missionInfoMgr->currentMissionId_ = MAX_MISSION_ID;
59     int32_t missionId = 1;
60     bool res = missionInfoMgr->GenerateMissionId(missionId);
61     EXPECT_TRUE(res);
62 }
63 
64 /*
65  * Feature: MissionInfoMgr
66  * Function: GenerateMissionId
67  * SubFunction: NA
68  * FunctionPoints: MissionInfoMgr GenerateMissionId
69  * EnvConditions: NA
70  * CaseDescription: Verify GenerateMissionId
71  */
72 HWTEST_F(MissionInfoMgrTest, GenerateMissionId_002, TestSize.Level1)
73 {
74     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
75     missionInfoMgr->missionIdMap_[missionInfoMgr->currentMissionId_] = true;
76     int32_t missionId = 1;
77     bool res = missionInfoMgr->GenerateMissionId(missionId);
78     EXPECT_TRUE(res);
79 
80     missionInfoMgr->currentMissionId_ = 1;
81     EXPECT_TRUE(missionInfoMgr->GenerateMissionId(missionId));
82 }
83 
84 /*
85  * Feature: MissionInfoMgr
86  * Function: AddMissionInfo
87  * SubFunction: NA
88  * FunctionPoints: MissionInfoMgr AddMissionInfo
89  * EnvConditions: NA
90  * CaseDescription: Verify AddMissionInfo
91  */
92 HWTEST_F(MissionInfoMgrTest, AddMissionInfo_001, TestSize.Level1)
93 {
94     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
95     int userId = 0;
96     missionInfoMgr->Init(userId);
97     missionInfoMgr->missionIdMap_[1] = true;
98     InnerMissionInfo missionInfo;
99     missionInfo.missionInfo.id = 1;
100     EXPECT_FALSE(missionInfoMgr->AddMissionInfo(missionInfo));
101 
102     missionInfoMgr->missionIdMap_[1] = false;
103     missionInfoMgr->DeleteMissionInfo(1);
104     EXPECT_TRUE(missionInfoMgr->AddMissionInfo(missionInfo));
105 }
106 
107 /*
108  * Feature: MissionListManager
109  * Function: AddMissionInfo
110  * SubFunction: NA
111  * FunctionPoints: MissionInfoMgr AddMissionInfo
112  * EnvConditions: NA
113  * CaseDescription: Verify AddMissionInfo
114  */
115 HWTEST_F(MissionInfoMgrTest, AddMissionInfo_002, TestSize.Level1)
116 {
117     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
118     int userId = 0;
119     missionInfoMgr->Init(userId);
120     InnerMissionInfo missionInfo;
121     missionInfo.missionInfo.time = 'a';
122     missionInfoMgr->missionInfoList_.push_back(missionInfo);
123     missionInfo.missionInfo.time = 'b';
124     missionInfo.missionInfo.id = 1;
125     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
126     bool res = missionInfoMgr->AddMissionInfo(missionInfo);
127     EXPECT_TRUE(res);
128 }
129 
130 /*
131  * Feature: MissionInfoMgr
132  * Function: AddMissionInfo
133  * SubFunction: NA
134  * FunctionPoints: MissionInfoMgr AddMissionInfo
135  * EnvConditions: NA
136  * CaseDescription: Verify AddMissionInfo
137  */
138 HWTEST_F(MissionInfoMgrTest, AddMissionInfo_003, TestSize.Level1)
139 {
140     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
141     int userId = 0;
142     missionInfoMgr->Init(userId);
143     InnerMissionInfo missionInfo;
144     InnerMissionInfo missionInfo2;
145     missionInfo.missionInfo.time = 'a';
146     missionInfo2.missionInfo.time = 'b';
147     missionInfoMgr->missionInfoList_.push_back(missionInfo2);
148     missionInfo.missionInfo.id = 1;
149     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
150     bool res = missionInfoMgr->AddMissionInfo(missionInfo);
151     EXPECT_TRUE(res);
152 }
153 
154 /*
155  * Feature: MissionInfoMgr
156  * Function: AddMissionInfo
157  * SubFunction: NA
158  * FunctionPoints: MissionInfoMgr AddMissionInfo
159  * EnvConditions: NA
160  * CaseDescription: Verify AddMissionInfo
161  */
162 HWTEST_F(MissionInfoMgrTest, AddMissionInfo_004, TestSize.Level1)
163 {
164     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
165     int userId = 0;
166     missionInfoMgr->Init(userId);
167     InnerMissionInfo missionInfo;
168     missionInfo.missionInfo.id = 1;
169     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
170 
171     auto temp = missionInfoMgr->taskDataPersistenceMgr_->handler_;
172     missionInfoMgr->taskDataPersistenceMgr_->handler_.reset();
173     EXPECT_FALSE(missionInfoMgr->AddMissionInfo(missionInfo));
174 }
175 
176 /*
177  * Feature: MissionInfoMgr
178  * Function: UpdateMissionInfo
179  * SubFunction: NA
180  * FunctionPoints: MissionInfoMgr UpdateMissionInfo
181  * EnvConditions: NA
182  * CaseDescription: Verify UpdateMissionInfo
183  */
184 HWTEST_F(MissionInfoMgrTest, UpdateMissionInfo_001, TestSize.Level1)
185 {
186     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
187     InnerMissionInfo missionInfo;
188     missionInfo.missionInfo.id = 1;
189     EXPECT_FALSE(missionInfoMgr->UpdateMissionInfo(missionInfo));
190 
191     missionInfoMgr->missionIdMap_[1] = false;
192     EXPECT_FALSE(missionInfoMgr->UpdateMissionInfo(missionInfo));
193 
194     missionInfoMgr->missionIdMap_[1] = true;
195     EXPECT_FALSE(missionInfoMgr->UpdateMissionInfo(missionInfo));
196 }
197 
198 /*
199  * Feature: MissionInfoMgr
200  * Function: UpdateMissionInfo
201  * SubFunction: NA
202  * FunctionPoints: MissionInfoMgr UpdateMissionInfo
203  * EnvConditions: NA
204  * CaseDescription: Verify UpdateMissionInfo
205  */
206 HWTEST_F(MissionInfoMgrTest, UpdateMissionInfo_002, TestSize.Level1)
207 {
208     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
209     int userId = 0;
210     missionInfoMgr->Init(userId);
211     missionInfoMgr->missionIdMap_[1] = true;
212     missionInfoMgr->missionIdMap_[2] = true;
213     InnerMissionInfo missionInfo;
214     missionInfo.missionInfo.id = 2;
215     missionInfoMgr->missionInfoList_.push_back(missionInfo);
216 
217     auto temp = missionInfoMgr->taskDataPersistenceMgr_->handler_;
218     missionInfoMgr->taskDataPersistenceMgr_->handler_.reset();
219     EXPECT_FALSE(missionInfoMgr->UpdateMissionInfo(missionInfo));
220     missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp;
221 
222     missionInfo.missionInfo.time = 'b';
223     EXPECT_TRUE(missionInfoMgr->UpdateMissionInfo(missionInfo));
224     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
225 }
226 
227 /*
228  * Feature: MissionInfoMgr
229  * Function: UpdateMissionInfo
230  * SubFunction: NA
231  * FunctionPoints: MissionInfoMgr UpdateMissionInfo
232  * EnvConditions: NA
233  * CaseDescription: Verify UpdateMissionInfo
234  */
235 HWTEST_F(MissionInfoMgrTest, UpdateMissionInfo_003, TestSize.Level1)
236 {
237     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
238     int userId = 0;
239     missionInfoMgr->Init(userId);
240     missionInfoMgr->missionIdMap_[1] = true;
241     InnerMissionInfo missionInfo;
242     missionInfo.missionInfo.id = 1;
243     missionInfoMgr->missionInfoList_.push_back(missionInfo);
244     EXPECT_TRUE(missionInfoMgr->UpdateMissionInfo(missionInfo));
245 }
246 
247 /*
248  * Feature: MissionInfoMgr
249  * Function: DeleteMissionInfo
250  * SubFunction: NA
251  * FunctionPoints: MissionInfoMgr DeleteMissionInfo
252  * EnvConditions: NA
253  * CaseDescription: Verify DeleteMissionInfo
254  */
255 HWTEST_F(MissionInfoMgrTest, DeleteMissionInfo_001, TestSize.Level1)
256 {
257     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
258     missionInfoMgr->missionIdMap_[1] = false;
259     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(-1));
260     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(1));
261 
262     missionInfoMgr->missionIdMap_[1] = true;
263     EXPECT_FALSE(missionInfoMgr->DeleteMissionInfo(1));
264 
265     missionInfoMgr->Init(0);
266     missionInfoMgr->missionIdMap_[1] = true;
267     auto temp = missionInfoMgr->taskDataPersistenceMgr_->handler_;
268     missionInfoMgr->taskDataPersistenceMgr_->handler_ = nullptr;
269     EXPECT_FALSE(missionInfoMgr->DeleteMissionInfo(1));
270     missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp;
271 
272     InnerMissionInfo missionInfo;
273     missionInfo.missionInfo.id = 1;
274     missionInfoMgr->missionInfoList_.push_back(missionInfo);
275     InnerMissionInfo missionInfo2;
276     missionInfo2.missionInfo.id = 2;
277     missionInfoMgr->missionInfoList_.push_back(missionInfo2);
278     missionInfoMgr->missionIdMap_[2] = true;
279     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(1));
280 }
281 
282 /*
283  * Feature: MissionInfoMgr
284  * Function: DeleteAllMissionInfos
285  * SubFunction: NA
286  * FunctionPoints: MissionInfoMgr DeleteAllMissionInfos
287  * EnvConditions: NA
288  * CaseDescription: Verify DeleteAllMissionInfos
289  */
290 HWTEST_F(MissionInfoMgrTest, DeleteAllMissionInfos_001, TestSize.Level1)
291 {
292     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
293     EXPECT_FALSE(missionInfoMgr->DeleteAllMissionInfos(nullptr));
294 }
295 
296 /*
297  * @tc.number    : DeleteAllMissionInfos_002
298  * @tc.name      : DeleteAllMissionInfos
299  * @tc.desc      : Test DeleteAllMissionInfos when mission is unclearable
300  */
301 HWTEST_F(MissionInfoMgrTest, DeleteAllMissionInfos_002, TestSize.Level1)
302 {
303     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
304     int userId = 0;
305     missionInfoMgr->Init(userId);
306     InnerMissionInfo missionInfo;
307     missionInfo.missionInfo.id = 1;
308     missionInfo.missionInfo.unclearable = true;
309     missionInfo.missionInfo.runningState = 0;
310     missionInfo.missionInfo.lockedState = false;
311     missionInfoMgr->missionInfoList_.push_back(missionInfo);
312     EXPECT_TRUE(missionInfoMgr->DeleteAllMissionInfos(nullptr));
313     EXPECT_EQ(missionInfoMgr->missionInfoList_.size(), 1);
314     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
315 }
316 
317 /*
318  * Feature: MissionInfoMgr
319  * Function: GetMissionInfos
320  * SubFunction: NA
321  * FunctionPoints: MissionInfoMgr GetMissionInfos
322  * EnvConditions: NA
323  * CaseDescription: Verify GetMissionInfos
324  */
325 HWTEST_F(MissionInfoMgrTest, GetMissionInfos_001, TestSize.Level1)
326 {
327     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
328     int userId = 0;
329     missionInfoMgr->Init(userId);
330     missionInfoMgr->missionIdMap_[1] = true;
331     InnerMissionInfo missionInfo;
332     missionInfo.missionInfo.id = 1;
333     missionInfoMgr->missionInfoList_.push_back(missionInfo);
334     std::vector<MissionInfo> missionInfos;
335     EXPECT_EQ(missionInfoMgr->GetMissionInfos(-1, missionInfos), -1);
336 
337     EXPECT_EQ(missionInfoMgr->GetMissionInfos(1, missionInfos), 0);
338 
339     EXPECT_EQ(missionInfoMgr->GetMissionInfos(0, missionInfos), 0);
340 }
341 
342 /*
343  * Feature: MissionInfoMgr
344  * Function: GetMissionInfoById
345  * SubFunction: NA
346  * FunctionPoints: MissionInfoMgr GetMissionInfoById
347  * EnvConditions: NA
348  * CaseDescription: Verify GetMissionInfoById
349  */
350 HWTEST_F(MissionInfoMgrTest, GetMissionInfoById_001, TestSize.Level1)
351 {
352     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
353     int userId = 0;
354     missionInfoMgr->Init(userId);
355     missionInfoMgr->missionIdMap_[1] = true;
356     InnerMissionInfo missionInfo;
357     missionInfo.missionInfo.id = 1;
358     missionInfoMgr->missionInfoList_.push_back(missionInfo);
359     MissionInfo myMissionInfo;
360     auto ret1 = missionInfoMgr->GetMissionInfoById(-1, myMissionInfo);
361     EXPECT_EQ(ret1, -1);
362 
363     auto ret2 = missionInfoMgr->GetMissionInfoById(1, myMissionInfo);
364     EXPECT_EQ(ret2, 0);
365 
366     missionInfo.missionInfo.id = 100;
367     EXPECT_EQ(missionInfoMgr->GetMissionInfoById(1, myMissionInfo), 0);
368 
369     missionInfo.startMethod = 100;
370     EXPECT_EQ(missionInfoMgr->GetMissionInfoById(1, myMissionInfo), 0);
371 }
372 
373 /*
374  * Feature: MissionInfoMgr
375  * Function: GetInnerMissionInfoById
376  * SubFunction: NA
377  * FunctionPoints: MissionInfoMgr GetInnerMissionInfoById
378  * EnvConditions: NA
379  * CaseDescription: Verify GetInnerMissionInfoById
380  */
381 HWTEST_F(MissionInfoMgrTest, GetInnerMissionInfoById_001, TestSize.Level1)
382 {
383     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
384     int userId = 0;
385     missionInfoMgr->Init(userId);
386     missionInfoMgr->missionIdMap_[1] = true;
387     InnerMissionInfo missionInfo;
388     missionInfo.missionInfo.id = 1;
389     missionInfoMgr->missionInfoList_.push_back(missionInfo);
390     EXPECT_EQ(missionInfoMgr->GetInnerMissionInfoById(1, missionInfo), 0);
391 }
392 
393 /*
394  * Feature: MissionInfoMgr
395  * Function: FindReusedMissionInfo
396  * SubFunction: NA
397  * FunctionPoints: MissionInfoMgr FindReusedMissionInfo
398  * EnvConditions: NA
399  * CaseDescription: Verify FindReusedMissionInfo
400  */
401 HWTEST_F(MissionInfoMgrTest, FindReusedMissionInfo_001, TestSize.Level1)
402 {
403     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
404     int userId = 0;
405     missionInfoMgr->Init(userId);
406     InnerMissionInfo missionInfo;
407     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("", "", false, missionInfo));
408     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
409 
410     missionInfo.missionInfo.id = 1;
411     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::STANDARD);
412     missionInfoMgr->missionInfoList_.push_back(missionInfo);
413     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
414 
415     missionInfoMgr->missionInfoList_.clear();
416     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::SINGLETON);
417     missionInfoMgr->missionInfoList_.push_back(missionInfo);
418     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
419     missionInfoMgr->missionInfoList_.clear();
420     missionInfo.missionName = "test";
421     missionInfoMgr->missionInfoList_.push_back(missionInfo);
422     EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
423 
424     missionInfoMgr->missionInfoList_.clear();
425     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::SPECIFIED);
426     missionInfoMgr->missionInfoList_.push_back(missionInfo);
427     EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
428 
429     missionInfoMgr->missionInfoList_.clear();
430     missionInfo.missionName = "test1";
431     missionInfoMgr->missionInfoList_.push_back(missionInfo);
432     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
433 
434     missionInfoMgr->missionInfoList_.clear();
435     missionInfo.missionName = "test";
436     missionInfo.specifiedFlag = "flag";
437     missionInfoMgr->missionInfoList_.push_back(missionInfo);
438     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
439 
440     missionInfoMgr->missionInfoList_.clear();
441     missionInfo.specifiedFlag = "";
442     missionInfo.launchMode = 1000;
443     missionInfoMgr->missionInfoList_.push_back(missionInfo);
444     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
445 }
446 
447 /*
448  * Feature: MissionInfoMgr
449  * Function: UpdateMissionLabel
450  * SubFunction: NA
451  * FunctionPoints: MissionInfoMgr UpdateMissionLabel
452  * EnvConditions: NA
453  * CaseDescription: Verify UpdateMissionLabel
454  */
455 HWTEST_F(MissionInfoMgrTest, UpdateMissionLabel_001, TestSize.Level1)
456 {
457     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
458     int userId = 0;
459     missionInfoMgr->Init(userId);
460     missionInfoMgr->missionIdMap_[1] = true;
461     InnerMissionInfo missionInfo;
462     missionInfo.missionInfo.id = 1;
463     missionInfoMgr->missionInfoList_.push_back(missionInfo);
464 
465     std::string label = "test";
466     auto ret1 = missionInfoMgr->UpdateMissionLabel(-1, label);
467     EXPECT_EQ(ret1, -1);
468 
469     auto ret2 = missionInfoMgr->UpdateMissionLabel(1, label);
470     EXPECT_EQ(ret2, 0);
471 
472     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
473     missionInfoMgr->taskDataPersistenceMgr_.reset();
474     EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
475     missionInfoMgr->taskDataPersistenceMgr_ = temp;
476 
477     auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->handler_;
478     missionInfoMgr->taskDataPersistenceMgr_->handler_.reset();
479     EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
480     missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp1;
481 }
482 
483 /*
484  * Feature: MissionInfoMgr
485  * Function: LoadAllMissionInfo
486  * SubFunction: NA
487  * FunctionPoints: MissionInfoMgr LoadAllMissionInfo
488  * EnvConditions: NA
489  * CaseDescription: Verify LoadAllMissionInfo
490  */
491 HWTEST_F(MissionInfoMgrTest, LoadAllMissionInfo_001, TestSize.Level1)
492 {
493     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
494     EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
495 
496     int userId = 0;
497     missionInfoMgr->Init(userId);
498     auto temp = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
499     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
500     EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
501     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp;
502 }
503 
504 /*
505  * Feature: MissionInfoMgr
506  * Function: HandleUnInstallApp
507  * SubFunction: NA
508  * FunctionPoints: MissionInfoMgr HandleUnInstallApp
509  * EnvConditions: NA
510  * CaseDescription: Verify HandleUnInstallApp
511  */
512 HWTEST_F(MissionInfoMgrTest, HandleUnInstallApp_001, TestSize.Level1)
513 {
514     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
515     int userId = 0;
516     missionInfoMgr->Init(userId);
517     std::list<int32_t> missions;
518     missionInfoMgr->HandleUnInstallApp("", 1, missions);
519 
520     missions.push_back(1);
521     missionInfoMgr->HandleUnInstallApp("", 1, missions);
522 }
523 
524 /*
525  * Feature: MissionInfoMgr
526  * Function: GetMatchedMission
527  * SubFunction: NA
528  * FunctionPoints: MissionInfoMgr GetMatchedMission
529  * EnvConditions: NA
530  * CaseDescription: Verify GetMatchedMission
531  */
532 HWTEST_F(MissionInfoMgrTest, GetMatchedMission_001, TestSize.Level1)
533 {
534     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
535     int userId = 0;
536     missionInfoMgr->Init(userId);
537     InnerMissionInfo missionInfo;
538     missionInfo.uid = 1;
539     missionInfo.bundleName = "test";
540     missionInfoMgr->missionInfoList_.push_back(missionInfo);
541     std::list<int32_t> missions;
542     missionInfoMgr->GetMatchedMission("test", 1, missions);
543 }
544 
545 /*
546  * Feature: MissionInfoMgr
547  * Function: Dump
548  * SubFunction: NA
549  * FunctionPoints: MissionInfoMgr Dump
550  * EnvConditions: NA
551  * CaseDescription: Verify Dump
552  */
553 HWTEST_F(MissionInfoMgrTest, Dump_001, TestSize.Level1)
554 {
555     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
556     int userId = 0;
557     missionInfoMgr->Init(userId);
558     missionInfoMgr->missionIdMap_[1] = true;
559     InnerMissionInfo missionInfo;
560     missionInfo.missionInfo.id = 1;
561     missionInfoMgr->missionInfoList_.push_back(missionInfo);
562     std::vector<std::string> info;
563     missionInfoMgr->Dump(info);
564 }
565 
566 /*
567  * Feature: MissionInfoMgr
568  * Function: RegisterSnapshotHandler
569  * SubFunction: NA
570  * FunctionPoints: MissionInfoMgr RegisterSnapshotHandler
571  * EnvConditions: NA
572  * CaseDescription: Verify RegisterSnapshotHandler
573  */
574 HWTEST_F(MissionInfoMgrTest, RegisterSnapshotHandler_001, TestSize.Level1)
575 {
576     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
577     int userId = 0;
578     missionInfoMgr->Init(userId);
579     missionInfoMgr->missionIdMap_[1] = true;
580     InnerMissionInfo missionInfo;
581     missionInfo.missionInfo.id = 1;
582     missionInfoMgr->missionInfoList_.push_back(missionInfo);
583     sptr<ISnapshotHandler> handler = nullptr;
584     missionInfoMgr->RegisterSnapshotHandler(handler);
585     EXPECT_EQ(missionInfoMgr->snapshotHandler_, nullptr);
586 }
587 
588 /*
589  * Feature: MissionInfoMgr
590  * Function: UpdateMissionSnapshot
591  * SubFunction: NA
592  * FunctionPoints: MissionInfoMgr UpdateMissionSnapshot
593  * EnvConditions: NA
594  * CaseDescription: Verify UpdateMissionSnapshot
595  */
596 HWTEST_F(MissionInfoMgrTest, UpdateMissionSnapshot_001, TestSize.Level1)
597 {
598     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
599     int userId = 0;
600     missionInfoMgr->Init(userId);
601     InnerMissionInfo missionInfo;
602     missionInfo.missionInfo.id = 1;
603     missionInfoMgr->missionInfoList_.push_back(missionInfo);
604     MissionSnapshot missionSnapshot;
605     auto temp = missionInfoMgr->snapshotHandler_;
606     missionInfoMgr->snapshotHandler_ = nullptr;
607     EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
608     missionInfoMgr->snapshotHandler_ = temp;
609     EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
610 }
611 
612 #ifdef SUPPORT_GRAPHICS
613 /*
614  * Feature: MissionInfoMgr
615  * Function: GetSnapshot
616  * SubFunction: NA
617  * FunctionPoints: MissionInfoMgr GetSnapshot
618  * EnvConditions: NA
619  * CaseDescription: Verify GetSnapshot
620  */
621 HWTEST_F(MissionInfoMgrTest, GetSnapshot_001, TestSize.Level1)
622 {
623     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
624     int userId = 0;
625     missionInfoMgr->Init(userId);
626     InnerMissionInfo missionInfo;
627     missionInfo.missionInfo.id = 1;
628     missionInfoMgr->missionInfoList_.push_back(missionInfo);
629     MissionSnapshot missionSnapshot;
630     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
631 
632     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
633     missionInfoMgr->taskDataPersistenceMgr_.reset();
634     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
635     missionInfoMgr->taskDataPersistenceMgr_ = temp;
636 
637     auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
638     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
639     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
640     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp1;
641 }
642 #endif
643 
644 /*
645  * Feature: MissionInfoMgr
646  * Function: GetMissionSnapshot
647  * SubFunction: NA
648  * FunctionPoints: MissionInfoMgr GetMissionSnapshot
649  * EnvConditions: NA
650  * CaseDescription: Verify GetMissionSnapshot
651  */
652 HWTEST_F(MissionInfoMgrTest, GetMissionSnapshot_001, TestSize.Level1)
653 {
654     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
655     sptr<IRemoteObject> abilityToken = nullptr;
656     MissionSnapshot missionSnapshot;
657     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
658 
659     int userId = 0;
660     missionInfoMgr->Init(userId);
661     InnerMissionInfo info;
662     info.missionInfo.id = 1;
663     missionInfoMgr->missionInfoList_.push_back(info);
664     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
665     missionInfoMgr->taskDataPersistenceMgr_.reset();
666     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
667     missionInfoMgr->taskDataPersistenceMgr_ = temp;
668 
669     // force
670     auto temp2 = missionInfoMgr->snapshotHandler_;
671     missionInfoMgr->snapshotHandler_ = nullptr;
672     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
673     missionInfoMgr->snapshotHandler_ = temp2;
674 
675     // taskDataPersistenceMgr_ GetMissionSnapshot return false
676     auto temp3 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
677     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = nullptr;
678     auto temp4 = missionInfoMgr->snapshotHandler_;
679     missionInfoMgr->snapshotHandler_ = nullptr;
680     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, false));
681     missionInfoMgr->snapshotHandler_ = temp4;
682     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp3;
683 }
684 
685 #ifdef SUPPORT_GRAPHICS
686 /*
687  * Feature: MissionInfoMgr
688  * Function: CreateWhitePixelMap
689  * SubFunction: NA
690  * FunctionPoints: MissionInfoMgr CreateWhitePixelMap
691  * EnvConditions: NA
692  * CaseDescription: Verify CreateWhitePixelMap
693  */
694 HWTEST_F(MissionInfoMgrTest, CreateWhitePixelMap_001, TestSize.Level1)
695 {
696     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
697     int userId = 0;
698     missionInfoMgr->Init(userId);
699     missionInfoMgr->missionIdMap_[1] = true;
700     InnerMissionInfo missionInfo;
701     missionInfo.missionInfo.id = 1;
702     missionInfoMgr->missionInfoList_.push_back(missionInfo);
703     Snapshot snapshot;
704     missionInfoMgr->CreateWhitePixelMap(snapshot);
705 }
706 #endif
707 }  // namespace AAFwk
708 }  // namespace OHOS
709