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