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, false, missionInfo));
408 EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", "", false, 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, 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, false, missionInfo));
419 missionInfoMgr->missionInfoList_.clear();
420 missionInfo.missionName = "test";
421 missionInfoMgr->missionInfoList_.push_back(missionInfo);
422 EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", "", false, 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, false, missionInfo));
428
429 missionInfoMgr->missionInfoList_.clear();
430 missionInfo.missionName = "test1";
431 missionInfoMgr->missionInfoList_.push_back(missionInfo);
432 EXPECT_FALSE(missionInfoMgr->FindReusedMissionInfo("test", "", "", false, 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, 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, false, missionInfo));
445
446 missionInfoMgr->missionInfoList_.clear();
447 missionInfo.missionName = "test";
448 missionInfo.launchMode = static_cast<int32_t>(AppExecFwk::LaunchMode::STANDARD);
449 missionInfoMgr->missionInfoList_.push_back(missionInfo);
450 EXPECT_TRUE(missionInfoMgr->FindReusedMissionInfo("test", "", "", true, false, missionInfo));
451 }
452
453 /*
454 * Feature: MissionInfoMgr
455 * Function: UpdateMissionLabel
456 * SubFunction: NA
457 * FunctionPoints: MissionInfoMgr UpdateMissionLabel
458 * EnvConditions: NA
459 * CaseDescription: Verify UpdateMissionLabel
460 */
461 HWTEST_F(MissionInfoMgrTest, UpdateMissionLabel_001, TestSize.Level1)
462 {
463 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
464 int userId = 0;
465 missionInfoMgr->Init(userId);
466 missionInfoMgr->missionIdMap_[1] = true;
467 InnerMissionInfo missionInfo;
468 missionInfo.missionInfo.id = 1;
469 missionInfoMgr->missionInfoList_.push_back(missionInfo);
470
471 std::string label = "test";
472 auto ret1 = missionInfoMgr->UpdateMissionLabel(-1, label);
473 EXPECT_EQ(ret1, -1);
474
475 auto ret2 = missionInfoMgr->UpdateMissionLabel(1, label);
476 EXPECT_EQ(ret2, 0);
477
478 auto temp = missionInfoMgr->taskDataPersistenceMgr_;
479 missionInfoMgr->taskDataPersistenceMgr_.reset();
480 EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
481 missionInfoMgr->taskDataPersistenceMgr_ = temp;
482
483 auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->handler_;
484 missionInfoMgr->taskDataPersistenceMgr_->handler_.reset();
485 EXPECT_EQ(missionInfoMgr->UpdateMissionLabel(1, label), -1);
486 missionInfoMgr->taskDataPersistenceMgr_->handler_ = temp1;
487 }
488
489 /*
490 * Feature: MissionInfoMgr
491 * Function: LoadAllMissionInfo
492 * SubFunction: NA
493 * FunctionPoints: MissionInfoMgr LoadAllMissionInfo
494 * EnvConditions: NA
495 * CaseDescription: Verify LoadAllMissionInfo
496 */
497 HWTEST_F(MissionInfoMgrTest, LoadAllMissionInfo_001, TestSize.Level1)
498 {
499 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
500 EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
501
502 int userId = 0;
503 missionInfoMgr->Init(userId);
504 auto temp = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
505 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
506 EXPECT_FALSE(missionInfoMgr->LoadAllMissionInfo());
507 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp;
508 }
509
510 /*
511 * Feature: MissionInfoMgr
512 * Function: HandleUnInstallApp
513 * SubFunction: NA
514 * FunctionPoints: MissionInfoMgr HandleUnInstallApp
515 * EnvConditions: NA
516 * CaseDescription: Verify HandleUnInstallApp
517 */
518 HWTEST_F(MissionInfoMgrTest, HandleUnInstallApp_001, TestSize.Level1)
519 {
520 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
521 int userId = 0;
522 missionInfoMgr->Init(userId);
523 std::list<int32_t> missions;
524 missionInfoMgr->HandleUnInstallApp("", 1, missions);
525
526 missions.push_back(1);
527 missionInfoMgr->HandleUnInstallApp("", 1, missions);
528 }
529
530 /*
531 * Feature: MissionInfoMgr
532 * Function: GetMatchedMission
533 * SubFunction: NA
534 * FunctionPoints: MissionInfoMgr GetMatchedMission
535 * EnvConditions: NA
536 * CaseDescription: Verify GetMatchedMission
537 */
538 HWTEST_F(MissionInfoMgrTest, GetMatchedMission_001, TestSize.Level1)
539 {
540 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
541 int userId = 0;
542 missionInfoMgr->Init(userId);
543 InnerMissionInfo missionInfo;
544 missionInfo.uid = 1;
545 missionInfo.bundleName = "test";
546 missionInfoMgr->missionInfoList_.push_back(missionInfo);
547 std::list<int32_t> missions;
548 missionInfoMgr->GetMatchedMission("test", 1, missions);
549 }
550
551 /*
552 * Feature: MissionInfoMgr
553 * Function: Dump
554 * SubFunction: NA
555 * FunctionPoints: MissionInfoMgr Dump
556 * EnvConditions: NA
557 * CaseDescription: Verify Dump
558 */
559 HWTEST_F(MissionInfoMgrTest, Dump_001, TestSize.Level1)
560 {
561 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
562 int userId = 0;
563 missionInfoMgr->Init(userId);
564 missionInfoMgr->missionIdMap_[1] = true;
565 InnerMissionInfo missionInfo;
566 missionInfo.missionInfo.id = 1;
567 missionInfoMgr->missionInfoList_.push_back(missionInfo);
568 std::vector<std::string> info;
569 missionInfoMgr->Dump(info);
570 }
571
572 /*
573 * Feature: MissionInfoMgr
574 * Function: RegisterSnapshotHandler
575 * SubFunction: NA
576 * FunctionPoints: MissionInfoMgr RegisterSnapshotHandler
577 * EnvConditions: NA
578 * CaseDescription: Verify RegisterSnapshotHandler
579 */
580 HWTEST_F(MissionInfoMgrTest, RegisterSnapshotHandler_001, TestSize.Level1)
581 {
582 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
583 int userId = 0;
584 missionInfoMgr->Init(userId);
585 missionInfoMgr->missionIdMap_[1] = true;
586 InnerMissionInfo missionInfo;
587 missionInfo.missionInfo.id = 1;
588 missionInfoMgr->missionInfoList_.push_back(missionInfo);
589 sptr<ISnapshotHandler> handler = nullptr;
590 missionInfoMgr->RegisterSnapshotHandler(handler);
591 EXPECT_EQ(missionInfoMgr->snapshotHandler_, nullptr);
592 }
593
594 /*
595 * Feature: MissionInfoMgr
596 * Function: UpdateMissionSnapshot
597 * SubFunction: NA
598 * FunctionPoints: MissionInfoMgr UpdateMissionSnapshot
599 * EnvConditions: NA
600 * CaseDescription: Verify UpdateMissionSnapshot
601 */
602 HWTEST_F(MissionInfoMgrTest, UpdateMissionSnapshot_001, TestSize.Level1)
603 {
604 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
605 int userId = 0;
606 missionInfoMgr->Init(userId);
607 InnerMissionInfo missionInfo;
608 missionInfo.missionInfo.id = 1;
609 missionInfoMgr->missionInfoList_.push_back(missionInfo);
610 MissionSnapshot missionSnapshot;
611 auto temp = missionInfoMgr->snapshotHandler_;
612 missionInfoMgr->snapshotHandler_ = nullptr;
613 EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
614 missionInfoMgr->snapshotHandler_ = temp;
615 EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
616 }
617
618 #ifdef SUPPORT_GRAPHICS
619 /*
620 * Feature: MissionInfoMgr
621 * Function: GetSnapshot
622 * SubFunction: NA
623 * FunctionPoints: MissionInfoMgr GetSnapshot
624 * EnvConditions: NA
625 * CaseDescription: Verify GetSnapshot
626 */
627 HWTEST_F(MissionInfoMgrTest, GetSnapshot_001, TestSize.Level1)
628 {
629 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
630 int userId = 0;
631 missionInfoMgr->Init(userId);
632 InnerMissionInfo missionInfo;
633 missionInfo.missionInfo.id = 1;
634 missionInfoMgr->missionInfoList_.push_back(missionInfo);
635 MissionSnapshot missionSnapshot;
636 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
637
638 auto temp = missionInfoMgr->taskDataPersistenceMgr_;
639 missionInfoMgr->taskDataPersistenceMgr_.reset();
640 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
641 missionInfoMgr->taskDataPersistenceMgr_ = temp;
642
643 auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
644 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
645 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
646 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp1;
647 }
648 #endif
649
650 /*
651 * Feature: MissionInfoMgr
652 * Function: GetMissionSnapshot
653 * SubFunction: NA
654 * FunctionPoints: MissionInfoMgr GetMissionSnapshot
655 * EnvConditions: NA
656 * CaseDescription: Verify GetMissionSnapshot
657 */
658 HWTEST_F(MissionInfoMgrTest, GetMissionSnapshot_001, TestSize.Level1)
659 {
660 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
661 sptr<IRemoteObject> abilityToken = nullptr;
662 MissionSnapshot missionSnapshot;
663 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
664
665 int userId = 0;
666 missionInfoMgr->Init(userId);
667 InnerMissionInfo info;
668 info.missionInfo.id = 1;
669 missionInfoMgr->missionInfoList_.push_back(info);
670 auto temp = missionInfoMgr->taskDataPersistenceMgr_;
671 missionInfoMgr->taskDataPersistenceMgr_.reset();
672 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
673 missionInfoMgr->taskDataPersistenceMgr_ = temp;
674
675 // force
676 auto temp2 = missionInfoMgr->snapshotHandler_;
677 missionInfoMgr->snapshotHandler_ = nullptr;
678 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
679 missionInfoMgr->snapshotHandler_ = temp2;
680
681 // taskDataPersistenceMgr_ GetMissionSnapshot return false
682 auto temp3 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
683 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = nullptr;
684 auto temp4 = missionInfoMgr->snapshotHandler_;
685 missionInfoMgr->snapshotHandler_ = nullptr;
686 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, false));
687 missionInfoMgr->snapshotHandler_ = temp4;
688 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp3;
689 }
690
691 #ifdef SUPPORT_GRAPHICS
692 /*
693 * Feature: MissionInfoMgr
694 * Function: CreateWhitePixelMap
695 * SubFunction: NA
696 * FunctionPoints: MissionInfoMgr CreateWhitePixelMap
697 * EnvConditions: NA
698 * CaseDescription: Verify CreateWhitePixelMap
699 */
700 HWTEST_F(MissionInfoMgrTest, CreateWhitePixelMap_001, TestSize.Level1)
701 {
702 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
703 int userId = 0;
704 missionInfoMgr->Init(userId);
705 missionInfoMgr->missionIdMap_[1] = true;
706 InnerMissionInfo missionInfo;
707 missionInfo.missionInfo.id = 1;
708 missionInfoMgr->missionInfoList_.push_back(missionInfo);
709 Snapshot snapshot;
710 missionInfoMgr->CreateWhitePixelMap(snapshot);
711 }
712 #endif
713 } // namespace AAFwk
714 } // namespace OHOS
715