1eace7efcSopenharmony_ci/*
2eace7efcSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3eace7efcSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4eace7efcSopenharmony_ci * you may not use this file except in compliance with the License.
5eace7efcSopenharmony_ci * You may obtain a copy of the License at
6eace7efcSopenharmony_ci *
7eace7efcSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8eace7efcSopenharmony_ci *
9eace7efcSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10eace7efcSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11eace7efcSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12eace7efcSopenharmony_ci * See the License for the specific language governing permissions and
13eace7efcSopenharmony_ci * limitations under the License.
14eace7efcSopenharmony_ci */
15eace7efcSopenharmony_ci
16eace7efcSopenharmony_ci#include <gtest/gtest.h>
17eace7efcSopenharmony_ci#define private public
18eace7efcSopenharmony_ci#define protected public
19eace7efcSopenharmony_ci#include "ability_info.h"
20eace7efcSopenharmony_ci#include "mission.h"
21eace7efcSopenharmony_ci#include "mission_list.h"
22eace7efcSopenharmony_ci#include "want.h"
23eace7efcSopenharmony_ci#include "application_info.h"
24eace7efcSopenharmony_ci#undef private
25eace7efcSopenharmony_ci#undef protected
26eace7efcSopenharmony_ci
27eace7efcSopenharmony_ciusing namespace testing::ext;
28eace7efcSopenharmony_ciusing namespace OHOS::AppExecFwk;
29eace7efcSopenharmony_ci
30eace7efcSopenharmony_cinamespace OHOS {
31eace7efcSopenharmony_cinamespace AAFwk {
32eace7efcSopenharmony_ciclass MissionTest : public testing::Test {
33eace7efcSopenharmony_cipublic:
34eace7efcSopenharmony_ci    static void SetUpTestCase(void);
35eace7efcSopenharmony_ci    static void TearDownTestCase(void);
36eace7efcSopenharmony_ci    void SetUp();
37eace7efcSopenharmony_ci    void TearDown();
38eace7efcSopenharmony_ci
39eace7efcSopenharmony_ci    static AbilityRequest GenerateAbilityRequest(const std::string& deviceName, const std::string& abilityName,
40eace7efcSopenharmony_ci        const std::string& appName, const std::string& bundleName);
41eace7efcSopenharmony_ci
42eace7efcSopenharmony_ci    Want want_{};
43eace7efcSopenharmony_ci    AbilityInfo abilityInfo_{};
44eace7efcSopenharmony_ci    ApplicationInfo appInfo_{};
45eace7efcSopenharmony_ci};
46eace7efcSopenharmony_ci
47eace7efcSopenharmony_civoid MissionTest::SetUpTestCase(void)
48eace7efcSopenharmony_ci{}
49eace7efcSopenharmony_civoid MissionTest::TearDownTestCase(void)
50eace7efcSopenharmony_ci{}
51eace7efcSopenharmony_civoid MissionTest::SetUp(void)
52eace7efcSopenharmony_ci{}
53eace7efcSopenharmony_civoid MissionTest::TearDown(void)
54eace7efcSopenharmony_ci{}
55eace7efcSopenharmony_ci
56eace7efcSopenharmony_ciAbilityRequest MissionTest::GenerateAbilityRequest(const std::string& deviceName, const std::string& abilityName,
57eace7efcSopenharmony_ci    const std::string& appName, const std::string& bundleName)
58eace7efcSopenharmony_ci{
59eace7efcSopenharmony_ci    ElementName element(deviceName, abilityName, bundleName);
60eace7efcSopenharmony_ci    Want want;
61eace7efcSopenharmony_ci    want.SetElement(element);
62eace7efcSopenharmony_ci
63eace7efcSopenharmony_ci    AbilityInfo abilityInfo;
64eace7efcSopenharmony_ci    abilityInfo.visible = true;
65eace7efcSopenharmony_ci    abilityInfo.applicationName = appName;
66eace7efcSopenharmony_ci    ApplicationInfo appinfo;
67eace7efcSopenharmony_ci    appinfo.name = appName;
68eace7efcSopenharmony_ci
69eace7efcSopenharmony_ci    AbilityRequest abilityRequest;
70eace7efcSopenharmony_ci    abilityRequest.want = want;
71eace7efcSopenharmony_ci    abilityRequest.abilityInfo = abilityInfo;
72eace7efcSopenharmony_ci    abilityRequest.appInfo = appinfo;
73eace7efcSopenharmony_ci
74eace7efcSopenharmony_ci    return abilityRequest;
75eace7efcSopenharmony_ci}
76eace7efcSopenharmony_ci
77eace7efcSopenharmony_ci/*
78eace7efcSopenharmony_ci * Feature: Mission
79eace7efcSopenharmony_ci * Function: SetMissionList and GetMissionList
80eace7efcSopenharmony_ci * SubFunction: NA
81eace7efcSopenharmony_ci * FunctionPoints: Mission SetMissionList
82eace7efcSopenharmony_ci * EnvConditions: NA
83eace7efcSopenharmony_ci * CaseDescription: Verify SetMissionList
84eace7efcSopenharmony_ci */
85eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_mission_list_001, TestSize.Level1)
86eace7efcSopenharmony_ci{
87eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
88eace7efcSopenharmony_ci    EXPECT_EQ(nullptr, mission->GetMissionList());
89eace7efcSopenharmony_ci}
90eace7efcSopenharmony_ci
91eace7efcSopenharmony_ci/*
92eace7efcSopenharmony_ci * Feature: Mission
93eace7efcSopenharmony_ci * Function: SetMissionList and GetMissionList
94eace7efcSopenharmony_ci * SubFunction: NA
95eace7efcSopenharmony_ci * FunctionPoints: Mission SetMissionList
96eace7efcSopenharmony_ci * EnvConditions: NA
97eace7efcSopenharmony_ci * CaseDescription: Verify SetMissionList
98eace7efcSopenharmony_ci */
99eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_mission_list_002, TestSize.Level1)
100eace7efcSopenharmony_ci{
101eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
102eace7efcSopenharmony_ci    mission->SetMissionList(nullptr);
103eace7efcSopenharmony_ci    EXPECT_EQ(nullptr, mission->GetMissionList());
104eace7efcSopenharmony_ci}
105eace7efcSopenharmony_ci
106eace7efcSopenharmony_ci/*
107eace7efcSopenharmony_ci * Feature: Mission
108eace7efcSopenharmony_ci * Function: SetMissionList and GetMissionList
109eace7efcSopenharmony_ci * SubFunction: NA
110eace7efcSopenharmony_ci * FunctionPoints: Mission SetMissionList
111eace7efcSopenharmony_ci * EnvConditions: NA
112eace7efcSopenharmony_ci * CaseDescription: Verify SetMissionList
113eace7efcSopenharmony_ci */
114eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_mission_list_003, TestSize.Level1)
115eace7efcSopenharmony_ci{
116eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
117eace7efcSopenharmony_ci    auto missionList = std::make_shared<MissionList>();
118eace7efcSopenharmony_ci    mission->SetMissionList(missionList);
119eace7efcSopenharmony_ci    EXPECT_EQ(missionList, mission->GetMissionList());
120eace7efcSopenharmony_ci}
121eace7efcSopenharmony_ci
122eace7efcSopenharmony_ci/*
123eace7efcSopenharmony_ci * Feature: Mission
124eace7efcSopenharmony_ci * Function: SetMissionList and GetMissionList
125eace7efcSopenharmony_ci * SubFunction: NA
126eace7efcSopenharmony_ci * FunctionPoints: Mission SetMissionList
127eace7efcSopenharmony_ci * EnvConditions: NA
128eace7efcSopenharmony_ci * CaseDescription: Verify SetMissionList
129eace7efcSopenharmony_ci */
130eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_mission_list_004, TestSize.Level1)
131eace7efcSopenharmony_ci{
132eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
133eace7efcSopenharmony_ci    auto missionList = std::make_shared<MissionList>();
134eace7efcSopenharmony_ci    mission->SetMissionList(missionList);
135eace7efcSopenharmony_ci    auto missionList1 = std::make_shared<MissionList>();
136eace7efcSopenharmony_ci    mission->SetMissionList(missionList1);
137eace7efcSopenharmony_ci    EXPECT_EQ(missionList1, mission->GetMissionList());
138eace7efcSopenharmony_ci}
139eace7efcSopenharmony_ci
140eace7efcSopenharmony_ci/*
141eace7efcSopenharmony_ci * Feature: Mission
142eace7efcSopenharmony_ci * Function: IsSingletonAbility
143eace7efcSopenharmony_ci * SubFunction: NA
144eace7efcSopenharmony_ci * FunctionPoints: Mission IsSingletonAbility
145eace7efcSopenharmony_ci * EnvConditions: NA
146eace7efcSopenharmony_ci * CaseDescription: Verify IsSingletonAbility
147eace7efcSopenharmony_ci */
148eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_singleton_001, TestSize.Level1)
149eace7efcSopenharmony_ci{
150eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
151eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsSingletonAbility());
152eace7efcSopenharmony_ci}
153eace7efcSopenharmony_ci
154eace7efcSopenharmony_ci/*
155eace7efcSopenharmony_ci * Feature: Mission
156eace7efcSopenharmony_ci * Function: IsSingletonAbility
157eace7efcSopenharmony_ci * SubFunction: NA
158eace7efcSopenharmony_ci * FunctionPoints: Mission IsSingletonAbility
159eace7efcSopenharmony_ci * EnvConditions: NA
160eace7efcSopenharmony_ci * CaseDescription: Verify IsSingletonAbility
161eace7efcSopenharmony_ci */
162eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_singleton_002, TestSize.Level1)
163eace7efcSopenharmony_ci{
164eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
165eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
166eace7efcSopenharmony_ci    Want want;
167eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
168eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
169eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord);
170eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsSingletonAbility());
171eace7efcSopenharmony_ci}
172eace7efcSopenharmony_ci
173eace7efcSopenharmony_ci/*
174eace7efcSopenharmony_ci * Feature: Mission
175eace7efcSopenharmony_ci * Function: IsSingletonAbility
176eace7efcSopenharmony_ci * SubFunction: NA
177eace7efcSopenharmony_ci * FunctionPoints: Mission IsSingletonAbility
178eace7efcSopenharmony_ci * EnvConditions: NA
179eace7efcSopenharmony_ci * CaseDescription: Verify IsSingletonAbility
180eace7efcSopenharmony_ci */
181eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_singleton_003, TestSize.Level1)
182eace7efcSopenharmony_ci{
183eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
184eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
185eace7efcSopenharmony_ci    Want want;
186eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
187eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
188eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord);
189eace7efcSopenharmony_ci    EXPECT_TRUE(mission->IsSingletonAbility());
190eace7efcSopenharmony_ci}
191eace7efcSopenharmony_ci
192eace7efcSopenharmony_ci/*
193eace7efcSopenharmony_ci * Feature: Mission
194eace7efcSopenharmony_ci * Function: GetMissionName
195eace7efcSopenharmony_ci * SubFunction: NA
196eace7efcSopenharmony_ci * FunctionPoints: Mission GetMissionName
197eace7efcSopenharmony_ci * EnvConditions: NA
198eace7efcSopenharmony_ci * CaseDescription: Verify GetMissionName
199eace7efcSopenharmony_ci */
200eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_get_mission_name_001, TestSize.Level1)
201eace7efcSopenharmony_ci{
202eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
203eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
204eace7efcSopenharmony_ci    Want want;
205eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
206eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
207eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord);
208eace7efcSopenharmony_ci    EXPECT_TRUE("" == mission->GetMissionName());
209eace7efcSopenharmony_ci}
210eace7efcSopenharmony_ci
211eace7efcSopenharmony_ci/*
212eace7efcSopenharmony_ci * Feature: Mission
213eace7efcSopenharmony_ci * Function: GetMissionName
214eace7efcSopenharmony_ci * SubFunction: NA
215eace7efcSopenharmony_ci * FunctionPoints: Mission GetMissionName
216eace7efcSopenharmony_ci * EnvConditions: NA
217eace7efcSopenharmony_ci * CaseDescription: Verify GetMissionName
218eace7efcSopenharmony_ci */
219eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_get_mission_name_002, TestSize.Level1)
220eace7efcSopenharmony_ci{
221eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
222eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
223eace7efcSopenharmony_ci    Want want;
224eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
225eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
226eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "");
227eace7efcSopenharmony_ci    EXPECT_TRUE("" == mission->GetMissionName());
228eace7efcSopenharmony_ci}
229eace7efcSopenharmony_ci
230eace7efcSopenharmony_ci/*
231eace7efcSopenharmony_ci * Feature: Mission
232eace7efcSopenharmony_ci * Function: GetMissionName
233eace7efcSopenharmony_ci * SubFunction: NA
234eace7efcSopenharmony_ci * FunctionPoints: Mission GetMissionName
235eace7efcSopenharmony_ci * EnvConditions: NA
236eace7efcSopenharmony_ci * CaseDescription: Verify GetMissionName
237eace7efcSopenharmony_ci */
238eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_get_mission_name_003, TestSize.Level1)
239eace7efcSopenharmony_ci{
240eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
241eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
242eace7efcSopenharmony_ci    Want want;
243eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
244eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
245eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "name1");
246eace7efcSopenharmony_ci    EXPECT_TRUE("name1" == mission->GetMissionName());
247eace7efcSopenharmony_ci}
248eace7efcSopenharmony_ci
249eace7efcSopenharmony_ci/*
250eace7efcSopenharmony_ci * Feature: Mission
251eace7efcSopenharmony_ci * Function: SetLockedState/IsLockedState
252eace7efcSopenharmony_ci * SubFunction: NA
253eace7efcSopenharmony_ci * FunctionPoints: Mission SetLockedState
254eace7efcSopenharmony_ci * EnvConditions: NA
255eace7efcSopenharmony_ci * CaseDescription: Verify SetLockedState/IsLockedState
256eace7efcSopenharmony_ci */
257eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_locked_state_001, TestSize.Level1)
258eace7efcSopenharmony_ci{
259eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
260eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
261eace7efcSopenharmony_ci    Want want;
262eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
263eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
264eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "name1");
265eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsLockedState());
266eace7efcSopenharmony_ci}
267eace7efcSopenharmony_ci
268eace7efcSopenharmony_ci/*
269eace7efcSopenharmony_ci * Feature: Mission
270eace7efcSopenharmony_ci * Function: SetLockedState/IsLockedState
271eace7efcSopenharmony_ci * SubFunction: NA
272eace7efcSopenharmony_ci * FunctionPoints: Mission SetLockedState
273eace7efcSopenharmony_ci * EnvConditions: NA
274eace7efcSopenharmony_ci * CaseDescription: Verify SetLockedState/IsLockedState
275eace7efcSopenharmony_ci */
276eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_locked_state_002, TestSize.Level1)
277eace7efcSopenharmony_ci{
278eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
279eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
280eace7efcSopenharmony_ci    Want want;
281eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
282eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
283eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "name1");
284eace7efcSopenharmony_ci    mission->SetLockedState(true);
285eace7efcSopenharmony_ci    EXPECT_TRUE(mission->IsLockedState());
286eace7efcSopenharmony_ci}
287eace7efcSopenharmony_ci
288eace7efcSopenharmony_ci/*
289eace7efcSopenharmony_ci * Feature: Mission
290eace7efcSopenharmony_ci * Function: SetLockedState/IsLockedState
291eace7efcSopenharmony_ci * SubFunction: NA
292eace7efcSopenharmony_ci * FunctionPoints: Mission SetLockedState
293eace7efcSopenharmony_ci * EnvConditions: NA
294eace7efcSopenharmony_ci * CaseDescription: Verify SetLockedState/IsLockedState
295eace7efcSopenharmony_ci */
296eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_locked_state_003, TestSize.Level1)
297eace7efcSopenharmony_ci{
298eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
299eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
300eace7efcSopenharmony_ci    Want want;
301eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
302eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
303eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "name1");
304eace7efcSopenharmony_ci    mission->SetLockedState(true);
305eace7efcSopenharmony_ci    EXPECT_TRUE(mission->IsLockedState());
306eace7efcSopenharmony_ci    mission->SetLockedState(false);
307eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsLockedState());
308eace7efcSopenharmony_ci}
309eace7efcSopenharmony_ci
310eace7efcSopenharmony_ci/*
311eace7efcSopenharmony_ci * Feature: Mission
312eace7efcSopenharmony_ci * Function: copy constructor
313eace7efcSopenharmony_ci * SubFunction: NA
314eace7efcSopenharmony_ci * FunctionPoints: Mission copy constructor
315eace7efcSopenharmony_ci * EnvConditions: NA
316eace7efcSopenharmony_ci * CaseDescription: deep copy a object, with same content but different pointer address
317eace7efcSopenharmony_ci */
318eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_copy_constructor_001, TestSize.Level1)
319eace7efcSopenharmony_ci{
320eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
321eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
322eace7efcSopenharmony_ci    Want want;
323eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
324eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
325eace7efcSopenharmony_ci    auto mission1 = std::make_shared<Mission>(0, abilityRecord, "name1");
326eace7efcSopenharmony_ci    auto mission2 = std::make_shared<Mission>(mission1);
327eace7efcSopenharmony_ci    EXPECT_NE(mission1, mission2);
328eace7efcSopenharmony_ci    EXPECT_NE(&(mission1->missionId_), &(mission2->missionId_));
329eace7efcSopenharmony_ci    EXPECT_NE(&(mission1->startMethod_), &(mission2->startMethod_));
330eace7efcSopenharmony_ci    EXPECT_NE(&(mission1->abilityRecord_), &(mission2->abilityRecord_));
331eace7efcSopenharmony_ci    EXPECT_NE(&(mission1->missionName_), &(mission2->missionName_));
332eace7efcSopenharmony_ci    EXPECT_EQ(mission1->missionId_, mission2->missionId_);
333eace7efcSopenharmony_ci    EXPECT_EQ(mission1->startMethod_, mission2->startMethod_);
334eace7efcSopenharmony_ci    EXPECT_EQ(mission1->abilityRecord_, mission2->abilityRecord_);
335eace7efcSopenharmony_ci    EXPECT_EQ(mission1->missionName_, mission2->missionName_);
336eace7efcSopenharmony_ci}
337eace7efcSopenharmony_ci
338eace7efcSopenharmony_ci/*
339eace7efcSopenharmony_ci * Feature: Mission
340eace7efcSopenharmony_ci * Function: IsSpecifiedAbility
341eace7efcSopenharmony_ci * SubFunction: NA
342eace7efcSopenharmony_ci * FunctionPoints: Mission IsSpecifiedAbility
343eace7efcSopenharmony_ci * EnvConditions: NA
344eace7efcSopenharmony_ci * CaseDescription: Verify IsSpecifiedAbility
345eace7efcSopenharmony_ci */
346eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_specified_001, TestSize.Level1)
347eace7efcSopenharmony_ci{
348eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
349eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsSpecifiedAbility());
350eace7efcSopenharmony_ci}
351eace7efcSopenharmony_ci
352eace7efcSopenharmony_ci/*
353eace7efcSopenharmony_ci * Feature: Mission
354eace7efcSopenharmony_ci * Function: IsSpecifiedAbility
355eace7efcSopenharmony_ci * SubFunction: NA
356eace7efcSopenharmony_ci * FunctionPoints: Mission IsSpecifiedAbility
357eace7efcSopenharmony_ci * EnvConditions: NA
358eace7efcSopenharmony_ci * CaseDescription: Verify IsSpecifiedAbility
359eace7efcSopenharmony_ci */
360eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_specified_002, TestSize.Level1)
361eace7efcSopenharmony_ci{
362eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
363eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
364eace7efcSopenharmony_ci    Want want;
365eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
366eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
367eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord);
368eace7efcSopenharmony_ci    EXPECT_FALSE(mission->IsSpecifiedAbility());
369eace7efcSopenharmony_ci}
370eace7efcSopenharmony_ci
371eace7efcSopenharmony_ci/*
372eace7efcSopenharmony_ci * Feature: Mission
373eace7efcSopenharmony_ci * Function: IsSpecifiedAbility
374eace7efcSopenharmony_ci * SubFunction: NA
375eace7efcSopenharmony_ci * FunctionPoints: Mission IsSpecifiedAbility
376eace7efcSopenharmony_ci * EnvConditions: NA
377eace7efcSopenharmony_ci * CaseDescription: Verify IsSpecifiedAbility
378eace7efcSopenharmony_ci */
379eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_is_specified_003, TestSize.Level1)
380eace7efcSopenharmony_ci{
381eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
382eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
383eace7efcSopenharmony_ci    Want want;
384eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
385eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
386eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord);
387eace7efcSopenharmony_ci    EXPECT_TRUE(mission->IsSpecifiedAbility());
388eace7efcSopenharmony_ci}
389eace7efcSopenharmony_ci
390eace7efcSopenharmony_ci/*
391eace7efcSopenharmony_ci * Feature: Mission
392eace7efcSopenharmony_ci * Function: SetSpecifiedFlag and GetSpecifiedFlag
393eace7efcSopenharmony_ci * SubFunction: NA
394eace7efcSopenharmony_ci * FunctionPoints: Mission SetSpecifiedFlag
395eace7efcSopenharmony_ci * EnvConditions: NA
396eace7efcSopenharmony_ci * CaseDescription: Verify SetSpecifiedFlag
397eace7efcSopenharmony_ci */
398eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_specified_flag_001, TestSize.Level1)
399eace7efcSopenharmony_ci{
400eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
401eace7efcSopenharmony_ci    EXPECT_EQ("", mission->GetSpecifiedFlag());
402eace7efcSopenharmony_ci}
403eace7efcSopenharmony_ci
404eace7efcSopenharmony_ci/*
405eace7efcSopenharmony_ci * Feature: Mission
406eace7efcSopenharmony_ci * Function: SetSpecifiedFlag and GetSpecifiedFlag
407eace7efcSopenharmony_ci * SubFunction: NA
408eace7efcSopenharmony_ci * FunctionPoints: Mission SetSpecifiedFlag
409eace7efcSopenharmony_ci * EnvConditions: NA
410eace7efcSopenharmony_ci * CaseDescription: Verify SetSpecifiedFlag
411eace7efcSopenharmony_ci */
412eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_specified_flag_002, TestSize.Level1)
413eace7efcSopenharmony_ci{
414eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
415eace7efcSopenharmony_ci    mission->SetSpecifiedFlag("");
416eace7efcSopenharmony_ci    EXPECT_EQ("", mission->GetSpecifiedFlag());
417eace7efcSopenharmony_ci}
418eace7efcSopenharmony_ci
419eace7efcSopenharmony_ci/*
420eace7efcSopenharmony_ci * Feature: Mission
421eace7efcSopenharmony_ci * Function: SetSpecifiedFlag and GetSpecifiedFlag
422eace7efcSopenharmony_ci * SubFunction: NA
423eace7efcSopenharmony_ci * FunctionPoints: Mission SetSpecifiedFlag
424eace7efcSopenharmony_ci * EnvConditions: NA
425eace7efcSopenharmony_ci * CaseDescription: Verify SetSpecifiedFlag
426eace7efcSopenharmony_ci */
427eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_specified_flag_003, TestSize.Level1)
428eace7efcSopenharmony_ci{
429eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
430eace7efcSopenharmony_ci    mission->SetSpecifiedFlag("test_string");
431eace7efcSopenharmony_ci    EXPECT_EQ("test_string", mission->GetSpecifiedFlag());
432eace7efcSopenharmony_ci}
433eace7efcSopenharmony_ci
434eace7efcSopenharmony_ci/*
435eace7efcSopenharmony_ci * Feature: Mission
436eace7efcSopenharmony_ci * Function: SetSpecifiedFlag and GetSpecifiedFlag
437eace7efcSopenharmony_ci * SubFunction: NA
438eace7efcSopenharmony_ci * FunctionPoints: Mission SetSpecifiedFlag
439eace7efcSopenharmony_ci * EnvConditions: NA
440eace7efcSopenharmony_ci * CaseDescription: Verify SetSpecifiedFlag
441eace7efcSopenharmony_ci */
442eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_specified_flag_004, TestSize.Level1)
443eace7efcSopenharmony_ci{
444eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
445eace7efcSopenharmony_ci    mission->SetSpecifiedFlag("test_string");
446eace7efcSopenharmony_ci    mission->SetSpecifiedFlag("test_string2");
447eace7efcSopenharmony_ci    EXPECT_EQ("test_string2", mission->GetSpecifiedFlag());
448eace7efcSopenharmony_ci}
449eace7efcSopenharmony_ci
450eace7efcSopenharmony_ci/*
451eace7efcSopenharmony_ci * Feature: Mission
452eace7efcSopenharmony_ci * Function: SetMovingState and IsMovingState
453eace7efcSopenharmony_ci * SubFunction: NA
454eace7efcSopenharmony_ci * FunctionPoints: Mission SetMovingState
455eace7efcSopenharmony_ci * EnvConditions: NA
456eace7efcSopenharmony_ci * CaseDescription: Verify SetMovingState
457eace7efcSopenharmony_ci */
458eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_moving_state_001, TestSize.Level1)
459eace7efcSopenharmony_ci{
460eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
461eace7efcSopenharmony_ci    EXPECT_EQ(false, mission->IsMovingState());
462eace7efcSopenharmony_ci}
463eace7efcSopenharmony_ci
464eace7efcSopenharmony_ci
465eace7efcSopenharmony_ci/*
466eace7efcSopenharmony_ci * Feature: Mission
467eace7efcSopenharmony_ci * Function: SetMovingState and IsMovingState
468eace7efcSopenharmony_ci * SubFunction: NA
469eace7efcSopenharmony_ci * FunctionPoints: Mission SetMovingState
470eace7efcSopenharmony_ci * EnvConditions: NA
471eace7efcSopenharmony_ci * CaseDescription: Verify SetMovingState
472eace7efcSopenharmony_ci */
473eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_moving_state_002, TestSize.Level1)
474eace7efcSopenharmony_ci{
475eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
476eace7efcSopenharmony_ci    mission->SetMovingState(true);
477eace7efcSopenharmony_ci    EXPECT_EQ(true, mission->IsMovingState());
478eace7efcSopenharmony_ci}
479eace7efcSopenharmony_ci
480eace7efcSopenharmony_ci/*
481eace7efcSopenharmony_ci * Feature: Mission
482eace7efcSopenharmony_ci * Function: SetANRState and IsANRState
483eace7efcSopenharmony_ci * SubFunction: NA
484eace7efcSopenharmony_ci * FunctionPoints: Mission SetANRState
485eace7efcSopenharmony_ci * EnvConditions: NA
486eace7efcSopenharmony_ci * CaseDescription: Verify SetANRState
487eace7efcSopenharmony_ci */
488eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_anr_state_001, TestSize.Level1)
489eace7efcSopenharmony_ci{
490eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
491eace7efcSopenharmony_ci    EXPECT_EQ(false, mission->IsANRState());
492eace7efcSopenharmony_ci}
493eace7efcSopenharmony_ci
494eace7efcSopenharmony_ci
495eace7efcSopenharmony_ci/*
496eace7efcSopenharmony_ci * Feature: Mission
497eace7efcSopenharmony_ci * Function: SetANRState and IsANRState
498eace7efcSopenharmony_ci * SubFunction: NA
499eace7efcSopenharmony_ci * FunctionPoints: Mission SetANRState
500eace7efcSopenharmony_ci * EnvConditions: NA
501eace7efcSopenharmony_ci * CaseDescription: Verify SetANRState
502eace7efcSopenharmony_ci */
503eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_set_anr_state_002, TestSize.Level1)
504eace7efcSopenharmony_ci{
505eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr);
506eace7efcSopenharmony_ci    mission->SetANRState(true);
507eace7efcSopenharmony_ci    EXPECT_EQ(true, mission->IsANRState());
508eace7efcSopenharmony_ci}
509eace7efcSopenharmony_ci
510eace7efcSopenharmony_ci/*
511eace7efcSopenharmony_ci * Feature: Mission
512eace7efcSopenharmony_ci * Function: Dump
513eace7efcSopenharmony_ci * SubFunction: NA
514eace7efcSopenharmony_ci * FunctionPoints: Mission Dump
515eace7efcSopenharmony_ci * EnvConditions: NA
516eace7efcSopenharmony_ci * CaseDescription: Test Dump
517eace7efcSopenharmony_ci */
518eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_dump, TestSize.Level1)
519eace7efcSopenharmony_ci{
520eace7efcSopenharmony_ci    AppExecFwk::AbilityInfo abilityInfo;
521eace7efcSopenharmony_ci    abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
522eace7efcSopenharmony_ci    Want want;
523eace7efcSopenharmony_ci    AppExecFwk::ApplicationInfo applicationInfo;
524eace7efcSopenharmony_ci    std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
525eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(0, abilityRecord, "name1");
526eace7efcSopenharmony_ci    std::vector<std::string> info;
527eace7efcSopenharmony_ci    mission->Dump(info);
528eace7efcSopenharmony_ci}
529eace7efcSopenharmony_ci
530eace7efcSopenharmony_ci/*
531eace7efcSopenharmony_ci * Feature: Mission
532eace7efcSopenharmony_ci * Function: UpdateMissionId
533eace7efcSopenharmony_ci * SubFunction: NA
534eace7efcSopenharmony_ci * FunctionPoints: Mission UpdateMissionId
535eace7efcSopenharmony_ci * EnvConditions: NA
536eace7efcSopenharmony_ci * CaseDescription: Verify UpdateMissionId
537eace7efcSopenharmony_ci */
538eace7efcSopenharmony_ciHWTEST_F(MissionTest, mission_update_mission_id, TestSize.Level1)
539eace7efcSopenharmony_ci{
540eace7efcSopenharmony_ci    auto mission = std::make_shared<Mission>(1, nullptr, "name1", 0);
541eace7efcSopenharmony_ci    EXPECT_EQ(1, mission->GetMissionId());
542eace7efcSopenharmony_ci    EXPECT_EQ(false, mission->UpdateMissionId(2, 0));
543eace7efcSopenharmony_ci    EXPECT_EQ(1, mission->GetMissionId());
544eace7efcSopenharmony_ci    EXPECT_EQ(true, mission->UpdateMissionId(2, 1));
545eace7efcSopenharmony_ci    EXPECT_EQ(2, mission->GetMissionId());
546eace7efcSopenharmony_ci}
547eace7efcSopenharmony_ci}  // namespace AAFwk
548eace7efcSopenharmony_ci}  // namespace OHOS