• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }
221 
222 /*
223  * Feature: MissionInfoMgr
224  * Function: UpdateMissionInfo
225  * SubFunction: NA
226  * FunctionPoints: MissionInfoMgr UpdateMissionInfo
227  * EnvConditions: NA
228  * CaseDescription: Verify UpdateMissionInfo
229  */
230 HWTEST_F(MissionInfoMgrTest, UpdateMissionInfo_003, TestSize.Level1)
231 {
232     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
233     int userId = 0;
234     missionInfoMgr->Init(userId);
235     missionInfoMgr->missionIdMap_[1] = true;
236     InnerMissionInfo missionInfo;
237     missionInfo.missionInfo.id = 1;
238     missionInfoMgr->missionInfoList_.push_back(missionInfo);
239     EXPECT_TRUE(missionInfoMgr->UpdateMissionInfo(missionInfo));
240 }
241 
242 /*
243  * Feature: MissionInfoMgr
244  * Function: DeleteMissionInfo
245  * SubFunction: NA
246  * FunctionPoints: MissionInfoMgr DeleteMissionInfo
247  * EnvConditions: NA
248  * CaseDescription: Verify DeleteMissionInfo
249  */
250 HWTEST_F(MissionInfoMgrTest, DeleteMissionInfo_001, TestSize.Level1)
251 {
252     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
253     missionInfoMgr->missionIdMap_[1] = false;
254     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(-1));
255     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(1));
256 
257     missionInfoMgr->missionIdMap_[1] = true;
258     EXPECT_FALSE(missionInfoMgr->DeleteMissionInfo(1));
259 
260     missionInfoMgr->Init(0);
261     missionInfoMgr->missionIdMap_[1] = true;
262     auto temp = missionInfoMgr->taskDataPersistenceMgr_->handler_;
263     missionInfoMgr->taskDataPersistenceMgr_->handler_ = nullptr;
264     EXPECT_FALSE(missionInfoMgr->DeleteMissionInfo(1));
265     missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp;
266 
267     InnerMissionInfo missionInfo;
268     missionInfo.missionInfo.id = 1;
269     missionInfoMgr->missionInfoList_.push_back(missionInfo);
270     InnerMissionInfo missionInfo2;
271     missionInfo2.missionInfo.id = 2;
272     missionInfoMgr->missionInfoList_.push_back(missionInfo2);
273     missionInfoMgr->missionIdMap_[2] = true;
274     EXPECT_TRUE(missionInfoMgr->DeleteMissionInfo(1));
275 }
276 
277 /*
278  * Feature: MissionInfoMgr
279  * Function: DeleteAllMissionInfos
280  * SubFunction: NA
281  * FunctionPoints: MissionInfoMgr DeleteAllMissionInfos
282  * EnvConditions: NA
283  * CaseDescription: Verify DeleteAllMissionInfos
284  */
285 HWTEST_F(MissionInfoMgrTest, DeleteAllMissionInfos_001, TestSize.Level1)
286 {
287     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
288     EXPECT_FALSE(missionInfoMgr->DeleteAllMissionInfos(nullptr));
289 }
290 
291 /*
292  * @tc.number    : DeleteAllMissionInfos_002
293  * @tc.name      : DeleteAllMissionInfos
294  * @tc.desc      : Test DeleteAllMissionInfos when mission is unclearable
295  */
296 HWTEST_F(MissionInfoMgrTest, DeleteAllMissionInfos_002, TestSize.Level1)
297 {
298     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
299     int userId = 0;
300     missionInfoMgr->Init(userId);
301     InnerMissionInfo missionInfo;
302     missionInfo.missionInfo.id = 1;
303     missionInfo.missionInfo.unclearable = true;
304     missionInfo.missionInfo.runningState = 0;
305     missionInfo.missionInfo.lockedState = false;
306     missionInfoMgr->missionInfoList_.push_back(missionInfo);
307     EXPECT_TRUE(missionInfoMgr->DeleteAllMissionInfos(nullptr));
308     EXPECT_EQ(missionInfoMgr->missionInfoList_.size(), 1);
309     missionInfoMgr->DeleteMissionInfo(missionInfo.missionInfo.id);
310 }
311 
312 /*
313  * Feature: MissionInfoMgr
314  * Function: GetMissionInfos
315  * SubFunction: NA
316  * FunctionPoints: MissionInfoMgr GetMissionInfos
317  * EnvConditions: NA
318  * CaseDescription: Verify GetMissionInfos
319  */
320 HWTEST_F(MissionInfoMgrTest, GetMissionInfos_001, TestSize.Level1)
321 {
322     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
323     int userId = 0;
324     missionInfoMgr->Init(userId);
325     missionInfoMgr->missionIdMap_[1] = true;
326     InnerMissionInfo missionInfo;
327     missionInfo.missionInfo.id = 1;
328     missionInfoMgr->missionInfoList_.push_back(missionInfo);
329     std::vector<MissionInfo> missionInfos;
330     EXPECT_EQ(missionInfoMgr->GetMissionInfos(-1, missionInfos), -1);
331 
332     EXPECT_EQ(missionInfoMgr->GetMissionInfos(1, missionInfos), 0);
333 
334     EXPECT_EQ(missionInfoMgr->GetMissionInfos(0, missionInfos), 0);
335 }
336 
337 /*
338  * Feature: MissionInfoMgr
339  * Function: GetMissionInfoById
340  * SubFunction: NA
341  * FunctionPoints: MissionInfoMgr GetMissionInfoById
342  * EnvConditions: NA
343  * CaseDescription: Verify GetMissionInfoById
344  */
345 HWTEST_F(MissionInfoMgrTest, GetMissionInfoById_001, TestSize.Level1)
346 {
347     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
348     int userId = 0;
349     missionInfoMgr->Init(userId);
350     missionInfoMgr->missionIdMap_[1] = true;
351     InnerMissionInfo missionInfo;
352     missionInfo.missionInfo.id = 1;
353     missionInfoMgr->missionInfoList_.push_back(missionInfo);
354     MissionInfo myMissionInfo;
355     auto ret1 = missionInfoMgr->GetMissionInfoById(-1, myMissionInfo);
356     EXPECT_EQ(ret1, -1);
357 
358     auto ret2 = missionInfoMgr->GetMissionInfoById(1, myMissionInfo);
359     EXPECT_EQ(ret2, 0);
360 
361     missionInfo.missionInfo.id = 100;
362     EXPECT_EQ(missionInfoMgr->GetMissionInfoById(1, myMissionInfo), 0);
363 
364     missionInfo.startMethod = 100;
365     EXPECT_EQ(missionInfoMgr->GetMissionInfoById(1, myMissionInfo), 0);
366 }
367 
368 /*
369  * Feature: MissionInfoMgr
370  * Function: GetInnerMissionInfoById
371  * SubFunction: NA
372  * FunctionPoints: MissionInfoMgr GetInnerMissionInfoById
373  * EnvConditions: NA
374  * CaseDescription: Verify GetInnerMissionInfoById
375  */
376 HWTEST_F(MissionInfoMgrTest, GetInnerMissionInfoById_001, TestSize.Level1)
377 {
378     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
379     int userId = 0;
380     missionInfoMgr->Init(userId);
381     missionInfoMgr->missionIdMap_[1] = true;
382     InnerMissionInfo missionInfo;
383     missionInfo.missionInfo.id = 1;
384     missionInfoMgr->missionInfoList_.push_back(missionInfo);
385     EXPECT_EQ(missionInfoMgr->GetInnerMissionInfoById(1, missionInfo), 0);
386 }
387 
388 /*
389  * Feature: MissionInfoMgr
390  * Function: FindReusedMissionInfo
391  * SubFunction: NA
392  * FunctionPoints: MissionInfoMgr FindReusedMissionInfo
393  * EnvConditions: NA
394  * CaseDescription: Verify FindReusedMissionInfo
395  */
396 HWTEST_F(MissionInfoMgrTest, FindReusedMissionInfo_001, TestSize.Level1)
397 {
398     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
399     int userId = 0;
400     missionInfoMgr->Init(userId);
401     InnerMissionInfo missionInfo;
402     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("", "", false, missionInfo));
403     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
404 
405     missionInfo.missionInfo.id = 1;
406     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::STANDARD);
407     missionInfoMgr->missionInfoList_.push_back(missionInfo);
408     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
409 
410     missionInfoMgr->missionInfoList_.clear();
411     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::SINGLETON);
412     missionInfoMgr->missionInfoList_.push_back(missionInfo);
413     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
414     missionInfoMgr->missionInfoList_.clear();
415     missionInfo.missionName = "test";
416     missionInfoMgr->missionInfoList_.push_back(missionInfo);
417     EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
418 
419     missionInfoMgr->missionInfoList_.clear();
420     missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::SPECIFIED);
421     missionInfoMgr->missionInfoList_.push_back(missionInfo);
422     EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
423 
424     missionInfoMgr->missionInfoList_.clear();
425     missionInfo.missionName = "test1";
426     missionInfoMgr->missionInfoList_.push_back(missionInfo);
427     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
428 
429     missionInfoMgr->missionInfoList_.clear();
430     missionInfo.missionName = "test";
431     missionInfo.specifiedFlag = "flag";
432     missionInfoMgr->missionInfoList_.push_back(missionInfo);
433     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
434 
435     missionInfoMgr->missionInfoList_.clear();
436     missionInfo.specifiedFlag = "";
437     missionInfo.launchMode = 1000;
438     missionInfoMgr->missionInfoList_.push_back(missionInfo);
439     EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", false, missionInfo));
440 }
441 
442 /*
443  * Feature: MissionInfoMgr
444  * Function: UpdateMissionLabel
445  * SubFunction: NA
446  * FunctionPoints: MissionInfoMgr UpdateMissionLabel
447  * EnvConditions: NA
448  * CaseDescription: Verify UpdateMissionLabel
449  */
450 HWTEST_F(MissionInfoMgrTest, UpdateMissionLabel_001, TestSize.Level1)
451 {
452     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
453     int userId = 0;
454     missionInfoMgr->Init(userId);
455     missionInfoMgr->missionIdMap_[1] = true;
456     InnerMissionInfo missionInfo;
457     missionInfo.missionInfo.id = 1;
458     missionInfoMgr->missionInfoList_.push_back(missionInfo);
459 
460     std::string label = "test";
461     auto ret1 = missionInfoMgr->UpdateMissionLabel(-1, label);
462     EXPECT_EQ(ret1, -1);
463 
464     auto ret2 = missionInfoMgr->UpdateMissionLabel(1, label);
465     EXPECT_EQ(ret2, 0);
466 
467     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
468     missionInfoMgr->taskDataPersistenceMgr_.reset();
469     EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
470     missionInfoMgr->taskDataPersistenceMgr_ = temp;
471 
472     auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->handler_;
473     missionInfoMgr->taskDataPersistenceMgr_->handler_.reset();
474     EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
475     missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp1;
476 }
477 
478 /*
479  * Feature: MissionInfoMgr
480  * Function: LoadAllMissionInfo
481  * SubFunction: NA
482  * FunctionPoints: MissionInfoMgr LoadAllMissionInfo
483  * EnvConditions: NA
484  * CaseDescription: Verify LoadAllMissionInfo
485  */
486 HWTEST_F(MissionInfoMgrTest, LoadAllMissionInfo_001, TestSize.Level1)
487 {
488     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
489     EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
490 
491     int userId = 0;
492     missionInfoMgr->Init(userId);
493     auto temp = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
494     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
495     EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
496     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp;
497 }
498 
499 /*
500  * Feature: MissionInfoMgr
501  * Function: HandleUnInstallApp
502  * SubFunction: NA
503  * FunctionPoints: MissionInfoMgr HandleUnInstallApp
504  * EnvConditions: NA
505  * CaseDescription: Verify HandleUnInstallApp
506  */
507 HWTEST_F(MissionInfoMgrTest, HandleUnInstallApp_001, TestSize.Level1)
508 {
509     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
510     int userId = 0;
511     missionInfoMgr->Init(userId);
512     std::list<int32_t> missions;
513     missionInfoMgr->HandleUnInstallApp("", 1, missions);
514 
515     missions.push_back(1);
516     missionInfoMgr->HandleUnInstallApp("", 1, missions);
517     EXPECT_TRUE(missionInfoMgr != nullptr);
518 }
519 
520 /*
521  * Feature: MissionInfoMgr
522  * Function: GetMatchedMission
523  * SubFunction: NA
524  * FunctionPoints: MissionInfoMgr GetMatchedMission
525  * EnvConditions: NA
526  * CaseDescription: Verify GetMatchedMission
527  */
528 HWTEST_F(MissionInfoMgrTest, GetMatchedMission_001, TestSize.Level1)
529 {
530     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
531     int userId = 0;
532     missionInfoMgr->Init(userId);
533     InnerMissionInfo missionInfo;
534     missionInfo.uid = 1;
535     missionInfo.bundleName = "test";
536     missionInfoMgr->missionInfoList_.push_back(missionInfo);
537     std::list<int32_t> missions;
538     missionInfoMgr->GetMatchedMission("test", 1, missions);
539     EXPECT_TRUE(missionInfoMgr != nullptr);
540 }
541 
542 /*
543  * Feature: MissionInfoMgr
544  * Function: Dump
545  * SubFunction: NA
546  * FunctionPoints: MissionInfoMgr Dump
547  * EnvConditions: NA
548  * CaseDescription: Verify Dump
549  */
550 HWTEST_F(MissionInfoMgrTest, Dump_001, TestSize.Level1)
551 {
552     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
553     int userId = 0;
554     missionInfoMgr->Init(userId);
555     missionInfoMgr->missionIdMap_[1] = true;
556     InnerMissionInfo missionInfo;
557     missionInfo.missionInfo.id = 1;
558     missionInfoMgr->missionInfoList_.push_back(missionInfo);
559     std::vector<std::string> info;
560     missionInfoMgr->Dump(info);
561     EXPECT_TRUE(missionInfoMgr != nullptr);
562 }
563 
564 /*
565  * Feature: MissionInfoMgr
566  * Function: RegisterSnapshotHandler
567  * SubFunction: NA
568  * FunctionPoints: MissionInfoMgr RegisterSnapshotHandler
569  * EnvConditions: NA
570  * CaseDescription: Verify RegisterSnapshotHandler
571  */
572 HWTEST_F(MissionInfoMgrTest, RegisterSnapshotHandler_001, TestSize.Level1)
573 {
574     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
575     int userId = 0;
576     missionInfoMgr->Init(userId);
577     missionInfoMgr->missionIdMap_[1] = true;
578     InnerMissionInfo missionInfo;
579     missionInfo.missionInfo.id = 1;
580     missionInfoMgr->missionInfoList_.push_back(missionInfo);
581     sptr<ISnapshotHandler> handler = nullptr;
582     missionInfoMgr->RegisterSnapshotHandler(handler);
583     EXPECT_EQ(missionInfoMgr->snapshotHandler_, nullptr);
584 }
585 
586 /*
587  * Feature: MissionInfoMgr
588  * Function: UpdateMissionSnapshot
589  * SubFunction: NA
590  * FunctionPoints: MissionInfoMgr UpdateMissionSnapshot
591  * EnvConditions: NA
592  * CaseDescription: Verify UpdateMissionSnapshot
593  */
594 HWTEST_F(MissionInfoMgrTest, UpdateMissionSnapshot_001, TestSize.Level1)
595 {
596     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
597     int userId = 0;
598     missionInfoMgr->Init(userId);
599     InnerMissionInfo missionInfo;
600     missionInfo.missionInfo.id = 1;
601     missionInfoMgr->missionInfoList_.push_back(missionInfo);
602     MissionSnapshot missionSnapshot;
603     auto temp = missionInfoMgr->snapshotHandler_;
604     missionInfoMgr->snapshotHandler_ = nullptr;
605     EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
606     missionInfoMgr->snapshotHandler_ = temp;
607     EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
608 }
609 
610 #ifdef SUPPORT_GRAPHICS
611 /*
612  * Feature: MissionInfoMgr
613  * Function: GetSnapshot
614  * SubFunction: NA
615  * FunctionPoints: MissionInfoMgr GetSnapshot
616  * EnvConditions: NA
617  * CaseDescription: Verify GetSnapshot
618  */
619 HWTEST_F(MissionInfoMgrTest, GetSnapshot_001, TestSize.Level1)
620 {
621     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
622     int userId = 0;
623     missionInfoMgr->Init(userId);
624     InnerMissionInfo missionInfo;
625     missionInfo.missionInfo.id = 1;
626     missionInfoMgr->missionInfoList_.push_back(missionInfo);
627     MissionSnapshot missionSnapshot;
628     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
629 
630     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
631     missionInfoMgr->taskDataPersistenceMgr_.reset();
632     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
633     missionInfoMgr->taskDataPersistenceMgr_ = temp;
634 
635     auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
636     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
637     EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
638     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp1;
639 }
640 #endif
641 
642 /*
643  * Feature: MissionInfoMgr
644  * Function: GetMissionSnapshot
645  * SubFunction: NA
646  * FunctionPoints: MissionInfoMgr GetMissionSnapshot
647  * EnvConditions: NA
648  * CaseDescription: Verify GetMissionSnapshot
649  */
650 HWTEST_F(MissionInfoMgrTest, GetMissionSnapshot_001, TestSize.Level1)
651 {
652     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
653     sptr<IRemoteObject> abilityToken = nullptr;
654     MissionSnapshot missionSnapshot;
655     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
656 
657     int userId = 0;
658     missionInfoMgr->Init(userId);
659     InnerMissionInfo info;
660     info.missionInfo.id = 1;
661     missionInfoMgr->missionInfoList_.push_back(info);
662     auto temp = missionInfoMgr->taskDataPersistenceMgr_;
663     missionInfoMgr->taskDataPersistenceMgr_.reset();
664     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
665     missionInfoMgr->taskDataPersistenceMgr_ = temp;
666 
667     // force
668     auto temp2 = missionInfoMgr->snapshotHandler_;
669     missionInfoMgr->snapshotHandler_ = nullptr;
670     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
671     missionInfoMgr->snapshotHandler_ = temp2;
672 
673     // taskDataPersistenceMgr_ GetMissionSnapshot return false
674     auto temp3 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
675     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = nullptr;
676     auto temp4 = missionInfoMgr->snapshotHandler_;
677     missionInfoMgr->snapshotHandler_ = nullptr;
678     EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, false));
679     missionInfoMgr->snapshotHandler_ = temp4;
680     missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp3;
681 }
682 
683 #ifdef SUPPORT_GRAPHICS
684 /*
685  * Feature: MissionInfoMgr
686  * Function: CreateWhitePixelMap
687  * SubFunction: NA
688  * FunctionPoints: MissionInfoMgr CreateWhitePixelMap
689  * EnvConditions: NA
690  * CaseDescription: Verify CreateWhitePixelMap
691  */
692 HWTEST_F(MissionInfoMgrTest, CreateWhitePixelMap_001, TestSize.Level1)
693 {
694     auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
695     int userId = 0;
696     missionInfoMgr->Init(userId);
697     missionInfoMgr->missionIdMap_[1] = true;
698     InnerMissionInfo missionInfo;
699     missionInfo.missionInfo.id = 1;
700     missionInfoMgr->missionInfoList_.push_back(missionInfo);
701     Snapshot snapshot;
702     missionInfoMgr->CreateWhitePixelMap(snapshot);
703     EXPECT_TRUE(missionInfoMgr != nullptr);
704 }
705 #endif
706 }  // namespace AAFwk
707 }  // namespace OHOS
708