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 EXPECT_TRUE(missionInfoMgr != nullptr);
523 }
524
525 /*
526 * Feature: MissionInfoMgr
527 * Function: GetMatchedMission
528 * SubFunction: NA
529 * FunctionPoints: MissionInfoMgr GetMatchedMission
530 * EnvConditions: NA
531 * CaseDescription: Verify GetMatchedMission
532 */
533 HWTEST_F(MissionInfoMgrTest, GetMatchedMission_001, TestSize.Level1)
534 {
535 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
536 int userId = 0;
537 missionInfoMgr->Init(userId);
538 InnerMissionInfo missionInfo;
539 missionInfo.uid = 1;
540 missionInfo.bundleName = "test";
541 missionInfoMgr->missionInfoList_.push_back(missionInfo);
542 std::list<int32_t> missions;
543 missionInfoMgr->GetMatchedMission("test", 1, missions);
544 EXPECT_TRUE(missionInfoMgr != nullptr);
545 }
546
547 /*
548 * Feature: MissionInfoMgr
549 * Function: Dump
550 * SubFunction: NA
551 * FunctionPoints: MissionInfoMgr Dump
552 * EnvConditions: NA
553 * CaseDescription: Verify Dump
554 */
555 HWTEST_F(MissionInfoMgrTest, Dump_001, TestSize.Level1)
556 {
557 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
558 int userId = 0;
559 missionInfoMgr->Init(userId);
560 missionInfoMgr->missionIdMap_[1] = true;
561 InnerMissionInfo missionInfo;
562 missionInfo.missionInfo.id = 1;
563 missionInfoMgr->missionInfoList_.push_back(missionInfo);
564 std::vector<std::string> info;
565 missionInfoMgr->Dump(info);
566 EXPECT_TRUE(missionInfoMgr != nullptr);
567 }
568
569 /*
570 * Feature: MissionInfoMgr
571 * Function: RegisterSnapshotHandler
572 * SubFunction: NA
573 * FunctionPoints: MissionInfoMgr RegisterSnapshotHandler
574 * EnvConditions: NA
575 * CaseDescription: Verify RegisterSnapshotHandler
576 */
577 HWTEST_F(MissionInfoMgrTest, RegisterSnapshotHandler_001, TestSize.Level1)
578 {
579 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
580 int userId = 0;
581 missionInfoMgr->Init(userId);
582 missionInfoMgr->missionIdMap_[1] = true;
583 InnerMissionInfo missionInfo;
584 missionInfo.missionInfo.id = 1;
585 missionInfoMgr->missionInfoList_.push_back(missionInfo);
586 sptr<ISnapshotHandler> handler = nullptr;
587 missionInfoMgr->RegisterSnapshotHandler(handler);
588 EXPECT_EQ(missionInfoMgr->snapshotHandler_, nullptr);
589 }
590
591 /*
592 * Feature: MissionInfoMgr
593 * Function: UpdateMissionSnapshot
594 * SubFunction: NA
595 * FunctionPoints: MissionInfoMgr UpdateMissionSnapshot
596 * EnvConditions: NA
597 * CaseDescription: Verify UpdateMissionSnapshot
598 */
599 HWTEST_F(MissionInfoMgrTest, UpdateMissionSnapshot_001, TestSize.Level1)
600 {
601 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
602 int userId = 0;
603 missionInfoMgr->Init(userId);
604 InnerMissionInfo missionInfo;
605 missionInfo.missionInfo.id = 1;
606 missionInfoMgr->missionInfoList_.push_back(missionInfo);
607 MissionSnapshot missionSnapshot;
608 auto temp = missionInfoMgr->snapshotHandler_;
609 missionInfoMgr->snapshotHandler_ = nullptr;
610 EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
611 missionInfoMgr->snapshotHandler_ = temp;
612 EXPECT_FALSE(missionInfoMgr->UpdateMissionSnapshot(1, nullptr, missionSnapshot, true));
613 }
614
615 #ifdef SUPPORT_GRAPHICS
616 /*
617 * Feature: MissionInfoMgr
618 * Function: GetSnapshot
619 * SubFunction: NA
620 * FunctionPoints: MissionInfoMgr GetSnapshot
621 * EnvConditions: NA
622 * CaseDescription: Verify GetSnapshot
623 */
624 HWTEST_F(MissionInfoMgrTest, GetSnapshot_001, TestSize.Level1)
625 {
626 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
627 int userId = 0;
628 missionInfoMgr->Init(userId);
629 InnerMissionInfo missionInfo;
630 missionInfo.missionInfo.id = 1;
631 missionInfoMgr->missionInfoList_.push_back(missionInfo);
632 MissionSnapshot missionSnapshot;
633 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
634
635 auto temp = missionInfoMgr->taskDataPersistenceMgr_;
636 missionInfoMgr->taskDataPersistenceMgr_.reset();
637 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
638 missionInfoMgr->taskDataPersistenceMgr_ = temp;
639
640 auto temp1 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
641 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_.reset();
642 EXPECT_EQ(missionInfoMgr->GetSnapshot(2), nullptr);
643 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp1;
644 }
645 #endif
646
647 /*
648 * Feature: MissionInfoMgr
649 * Function: GetMissionSnapshot
650 * SubFunction: NA
651 * FunctionPoints: MissionInfoMgr GetMissionSnapshot
652 * EnvConditions: NA
653 * CaseDescription: Verify GetMissionSnapshot
654 */
655 HWTEST_F(MissionInfoMgrTest, GetMissionSnapshot_001, TestSize.Level1)
656 {
657 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
658 sptr<IRemoteObject> abilityToken = nullptr;
659 MissionSnapshot missionSnapshot;
660 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
661
662 int userId = 0;
663 missionInfoMgr->Init(userId);
664 InnerMissionInfo info;
665 info.missionInfo.id = 1;
666 missionInfoMgr->missionInfoList_.push_back(info);
667 auto temp = missionInfoMgr->taskDataPersistenceMgr_;
668 missionInfoMgr->taskDataPersistenceMgr_.reset();
669 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
670 missionInfoMgr->taskDataPersistenceMgr_ = temp;
671
672 // force
673 auto temp2 = missionInfoMgr->snapshotHandler_;
674 missionInfoMgr->snapshotHandler_ = nullptr;
675 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, true));
676 missionInfoMgr->snapshotHandler_ = temp2;
677
678 // taskDataPersistenceMgr_ GetMissionSnapshot return false
679 auto temp3 = missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_;
680 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = nullptr;
681 auto temp4 = missionInfoMgr->snapshotHandler_;
682 missionInfoMgr->snapshotHandler_ = nullptr;
683 EXPECT_FALSE(missionInfoMgr->GetMissionSnapshot(1, abilityToken, missionSnapshot, true, false));
684 missionInfoMgr->snapshotHandler_ = temp4;
685 missionInfoMgr->taskDataPersistenceMgr_->currentMissionDataStorage_ = temp3;
686 }
687
688 #ifdef SUPPORT_GRAPHICS
689 /*
690 * Feature: MissionInfoMgr
691 * Function: CreateWhitePixelMap
692 * SubFunction: NA
693 * FunctionPoints: MissionInfoMgr CreateWhitePixelMap
694 * EnvConditions: NA
695 * CaseDescription: Verify CreateWhitePixelMap
696 */
697 HWTEST_F(MissionInfoMgrTest, CreateWhitePixelMap_001, TestSize.Level1)
698 {
699 auto missionInfoMgr = std::make_shared<MissionInfoMgr>();
700 int userId = 0;
701 missionInfoMgr->Init(userId);
702 missionInfoMgr->missionIdMap_[1] = true;
703 InnerMissionInfo missionInfo;
704 missionInfo.missionInfo.id = 1;
705 missionInfoMgr->missionInfoList_.push_back(missionInfo);
706 Snapshot snapshot;
707 missionInfoMgr->CreateWhitePixelMap(snapshot);
708 EXPECT_TRUE(missionInfoMgr != nullptr);
709 }
710 #endif
711 } // namespace AAFwk
712 } // namespace OHOS
713