1 /*
2 * Copyright (c) 2022 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 #define private public
16 #include "workinfo_test.h"
17 #include <message_parcel.h>
18
19 #include "work_info.h"
20 #include "work_sched_common.h"
21 #include "work_sched_utils.h"
22 #include "string_wrapper.h"
23
24 using namespace std;
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace WorkScheduler {
29 const int32_t INVALID_VALUE = -1;
SetUpTestCase(void)30 void WorkInfoTest::SetUpTestCase(void)
31 {
32 }
33
TearDownTestCase(void)34 void WorkInfoTest::TearDownTestCase(void)
35 {
36 }
37
SetUp()38 void WorkInfoTest::SetUp()
39 {
40 }
41
TearDown()42 void WorkInfoTest::TearDown()
43 {
44 }
45
46 /**
47 * @tc.name WorkInfoTest001
48 * @tc.desc Set WorkId to WorkInfo
49 * @tc.type FUNC
50 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
51 */
52 HWTEST_F (WorkInfoTest, WorkInfoTest001, Function | MediumTest | Level0)
53 {
54 WorkInfo workInfo = WorkInfo();
55 workInfo.SetWorkId(1);
56 EXPECT_EQ(workInfo.GetWorkId(), 1);
57 }
58
59 /**
60 * @tc.name WorkInfoTest002
61 * @tc.desc Set bundleName and abilityName to WorkInfo
62 * @tc.type FUNC
63 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
64 */
65 HWTEST_F (WorkInfoTest, WorkInfoTest002, Function | MediumTest | Level0)
66 {
67 WorkInfo workInfo = WorkInfo();
68 workInfo.SetElement("bundle_name", "ability_name");
69 EXPECT_EQ(workInfo.GetBundleName(), "bundle_name");
70 EXPECT_EQ(workInfo.GetAbilityName(), "ability_name");
71 }
72
73 /**
74 * @tc.name WorkInfoTest003
75 * @tc.desc Set workInfo persisted
76 * @tc.type FUNC
77 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
78 */
79 HWTEST_F (WorkInfoTest, WorkInfoTest003, Function | MediumTest | Level0)
80 {
81 WorkInfo workInfo = WorkInfo();
82 workInfo.RequestPersisted(true);
83 EXPECT_EQ(workInfo.IsPersisted(), true);
84 workInfo.RequestPersisted(false);
85 EXPECT_EQ(workInfo.IsPersisted(), false);
86 }
87
88 /**
89 * @tc.name WorkInfoTest004
90 * @tc.desc Set workInfo charger condition charging
91 * @tc.type FUNC
92 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
93 */
94 HWTEST_F (WorkInfoTest, WorkInfoTest004, Function | MediumTest | Level0)
95 {
96 WorkInfo workInfo = WorkInfo();
97 EXPECT_EQ(workInfo.GetChargerType(), WorkCondition::Charger::CHARGING_UNKNOWN);
98 workInfo.RequestChargerType(true, WorkCondition::Charger::CHARGING_PLUGGED_ANY);
99 EXPECT_EQ(workInfo.GetChargerType(), WorkCondition::Charger::CHARGING_PLUGGED_ANY);
100 }
101
102 /**
103 * @tc.name WorkInfoTest005
104 * @tc.desc Set workInfo charger condiiton discharging
105 * @tc.type FUNC
106 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
107 */
108 HWTEST_F (WorkInfoTest, WorkInfoTest005, Function | MediumTest | Level0)
109 {
110 WorkInfo workInfo = WorkInfo();
111 workInfo.RequestChargerType(false, WorkCondition::Charger::CHARGING_UNPLUGGED);
112 EXPECT_EQ(workInfo.GetChargerType(), WorkCondition::Charger::CHARGING_UNPLUGGED);
113 }
114
115 /**
116 * @tc.name WorkInfoTest006
117 * @tc.desc Set workInfo battery condition battery changed
118 * @tc.type FUNC
119 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
120 */
121 HWTEST_F (WorkInfoTest, WorkInfoTest006, Function | MediumTest | Level0)
122 {
123 WorkInfo workInfo = WorkInfo();
124 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_LOW_OR_OKAY);
125 EXPECT_EQ(workInfo.GetBatteryStatus(), WorkCondition::BatteryStatus::BATTERY_STATUS_LOW_OR_OKAY);
126 }
127
128 /**
129 * @tc.name WorkInfoTest007
130 * @tc.desc Set workInfo battery condition battery low
131 * @tc.type FUNC
132 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
133 */
134 HWTEST_F (WorkInfoTest, WorkInfoTest007, Function | MediumTest | Level0)
135 {
136 WorkInfo workInfo = WorkInfo();
137 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_LOW);
138 EXPECT_EQ(workInfo.GetBatteryStatus(), WorkCondition::BatteryStatus::BATTERY_STATUS_LOW);
139 }
140
141 /**
142 * @tc.name WorkInfoTest008
143 * @tc.desc Set workInfo battery condition battery okey
144 * @tc.type FUNC
145 * @tc.require: SR000GGTN6 AR000GH896 AR000GH897 AR000GH898
146 */
147 HWTEST_F (WorkInfoTest, WorkInfoTest008, Function | MediumTest | Level0)
148 {
149 WorkInfo workInfo = WorkInfo();
150 EXPECT_EQ(workInfo.GetBatteryStatus(), WorkCondition::BatteryStatus::BATTERY_UNKNOWN);
151 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
152 EXPECT_EQ(workInfo.GetBatteryStatus(), WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
153 }
154
155 /**
156 * @tc.name WorkInfoTest009
157 * @tc.desc Set workInfo storage condition storage change
158 * @tc.type FUNC
159 * @tc.require: SR000GGTN9 AR000GH89M
160 */
161 HWTEST_F (WorkInfoTest, WorkInfoTest009, Function | MediumTest | Level0)
162 {
163 WorkInfo workInfo = WorkInfo();
164 EXPECT_EQ(workInfo.GetStorageLevel(), WorkCondition::Storage::STORAGE_UNKNOWN);
165 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_LOW_OR_OKAY);
166 EXPECT_EQ(workInfo.GetStorageLevel(), WorkCondition::Storage::STORAGE_LEVEL_LOW_OR_OKAY);
167 }
168
169 /**
170 * @tc.name WorkInfoTest010
171 * @tc.desc Set workInfo storage condition storage low
172 * @tc.type FUNC
173 * @tc.require: SR000GGTN8 AR000GH89J AR000GH89K AR000GH89L
174 */
175 HWTEST_F (WorkInfoTest, WorkInfoTest010, Function | MediumTest | Level0)
176 {
177 WorkInfo workInfo = WorkInfo();
178 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_LOW);
179 EXPECT_EQ(workInfo.GetStorageLevel(), WorkCondition::Storage::STORAGE_LEVEL_LOW);
180 }
181
182 /**
183 * @tc.name WorkInfoTest011
184 * @tc.desc Set workInfo storage condition storage ok
185 * @tc.type FUNC
186 * @tc.require: SR000GGTNB AR000GH89Q
187 */
188 HWTEST_F (WorkInfoTest, WorkInfoTest011, Function | MediumTest | Level0)
189 {
190 WorkInfo workInfo = WorkInfo();
191 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_OKAY);
192 EXPECT_EQ(workInfo.GetStorageLevel(), WorkCondition::Storage::STORAGE_LEVEL_OKAY);
193 }
194
195 /**
196 * @tc.name WorkInfoTest012
197 * @tc.desc Set workInfo network condition
198 * @tc.type FUNC
199 * @tc.require: SR000GGTNA AR000GH89P AR000GH89N AR000GH89O
200 */
201 HWTEST_F (WorkInfoTest, WorkInfoTest012, Function | MediumTest | Level0)
202 {
203 WorkInfo workInfo = WorkInfo();
204 EXPECT_EQ(workInfo.GetNetworkType(), WorkCondition::Network::NETWORK_UNKNOWN);
205 workInfo.RequestNetworkType(WorkCondition::Network::NETWORK_TYPE_ANY);
206 EXPECT_EQ(workInfo.GetNetworkType(), WorkCondition::Network::NETWORK_TYPE_ANY);
207 }
208
209 /**
210 * @tc.name WorkInfoTest013
211 * @tc.desc Set workInfo repeat time condition repeat count 3
212 * @tc.type FUNC
213 * @tc.require: SR000GGTNA AR000GH89P AR000GH89N AR000GH89O
214 */
215 HWTEST_F (WorkInfoTest, WorkInfoTest013, Function | MediumTest | Level0)
216 {
217 uint32_t timeInterval = 120;
218 WorkInfo workInfo = WorkInfo();
219 EXPECT_EQ(workInfo.GetTimeInterval(), 0);
220 EXPECT_EQ(workInfo.GetCycleCount(), INVALID_VALUE);
221 workInfo.RequestRepeatCycle(timeInterval, 3);
222 EXPECT_EQ(workInfo.GetTimeInterval(), timeInterval);
223 EXPECT_EQ(workInfo.IsRepeat(), false);
224 EXPECT_EQ(workInfo.GetCycleCount(), 3);
225 }
226
227 /**
228 * @tc.name WorkInfoTest014
229 * @tc.desc Set workInfo repeat time condition repeat
230 * @tc.type FUNC
231 * @tc.require: SR000GGTNA AR000GH89P AR000GH89N AR000GH89O
232 */
233 HWTEST_F (WorkInfoTest, WorkInfoTest014, Function | MediumTest | Level0)
234 {
235 uint32_t timeInterval = 120;
236 WorkInfo workInfo = WorkInfo();
237 EXPECT_EQ(workInfo.IsRepeat(), false);
238 workInfo.RequestRepeatCycle(timeInterval);
239 EXPECT_EQ(workInfo.GetTimeInterval(), timeInterval);
240 EXPECT_EQ(workInfo.IsRepeat(), true);
241 EXPECT_EQ(workInfo.GetCycleCount(), INVALID_VALUE);
242 }
243
244 /**
245 * @tc.name WorkInfoTest015
246 * @tc.desc Set workInfo battery level
247 * @tc.type FUNC
248 * @tc.require: issueI5Y6YK
249 */
250 HWTEST_F (WorkInfoTest, WorkInfoTest015, Function | MediumTest | Level0)
251 {
252 WorkInfo workInfo = WorkInfo();
253 EXPECT_EQ(workInfo.GetBatteryLevel(), INVALID_VALUE);
254 workInfo.RequestBatteryLevel(1);
255 EXPECT_EQ(workInfo.GetBatteryLevel(), 1);
256 }
257
258 /**
259 * @tc.name WorkInfoTest016
260 * @tc.desc Set workInfo RefreshUid
261 * @tc.type FUNC
262 * @tc.require: issueI5Y6YK
263 */
264 HWTEST_F (WorkInfoTest, WorkInfoTest016, Function | MediumTest | Level0)
265 {
266 WorkInfo workInfo = WorkInfo();
267 workInfo.RefreshUid(0);
268 EXPECT_EQ(workInfo.GetUid(), 0);
269 }
270
271 /**
272 * @tc.name WorkInfoTest017
273 * @tc.desc Set workInfo extras
274 * @tc.type FUNC
275 * @tc.require: issueI5Y6YK
276 */
277 HWTEST_F (WorkInfoTest, WorkInfoTest017, Function | MediumTest | Level0)
278 {
279 WorkInfo workInfo = WorkInfo();
280 AAFwk::WantParams extras;
281 workInfo.RequestExtras(extras);
282 auto extrasRead = workInfo.GetExtras();
283 if (extras == *extrasRead.get()) {
284 EXPECT_TRUE(true);
285 } else {
286 EXPECT_FALSE(true);
287 }
288 }
289
290 /**
291 * @tc.name WorkInfoTest018
292 * @tc.desc Set workInfo GetConditionMap
293 * @tc.type FUNC
294 * @tc.require: issueI5Y6YK
295 */
296 HWTEST_F (WorkInfoTest, WorkInfoTest018, Function | MediumTest | Level0)
297 {
298 WorkInfo workInfo = WorkInfo();
299 workInfo.GetConditionMap();
300 std::string result;
301 workInfo.Dump(result);
302 EXPECT_NE(result, "");
303 }
304
305 /**
306 * @tc.name WorkInfoTestJson001
307 * @tc.desc Set workInfo json func
308 * @tc.type FUNC
309 * @tc.require: issueI5Y6YK
310 */
311 HWTEST_F (WorkInfoTest, WorkInfoTestJson001, Function | MediumTest | Level0)
312 {
313 WorkInfo workInfo = WorkInfo();
314 std::string res = workInfo.ParseToJsonStr();
315
316 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
317 workInfo.RequestChargerType(true, WorkCondition::Charger::CHARGING_PLUGGED_ANY);
318 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_LOW);
319 workInfo.RequestNetworkType(WorkCondition::Network::NETWORK_TYPE_ANY);
320 workInfo.RequestBatteryLevel(1);
321 uint32_t timeInterval = 120;
322 workInfo.RequestRepeatCycle(timeInterval);
323 res = workInfo.ParseToJsonStr();
324
325 workInfo.RefreshUid(1);
326 workInfo.RequestRepeatCycle(timeInterval, 3);
327 AAFwk::WantParams extras;
328 extras.SetParam("key1", OHOS::AAFwk::String::Box("value1"));
329 workInfo.RequestExtras(extras);
330 res = workInfo.ParseToJsonStr();
331
332 std::shared_ptr<Condition> condUnknown = std::make_shared<Condition>();
333 condUnknown->boolVal = true;
334 workInfo.conditionMap_.emplace(WorkCondition::Type::UNKNOWN, condUnknown);
335 res = workInfo.ParseToJsonStr();
336 EXPECT_NE(res, "");
337 }
338
339 /**
340 * @tc.name WorkInfoTestJson002
341 * @tc.desc Set workInfo json func
342 * @tc.type FUNC
343 * @tc.require: issueI5Y6YK
344 */
345 HWTEST_F (WorkInfoTest, WorkInfoTestJson002, Function | MediumTest | Level0)
346 {
347 using namespace OHOS::WorkScheduler;
348 WorkInfo workInfo = WorkInfo();
349 Json::Value root;
350 bool res = workInfo.ParseFromJson(root);
351 EXPECT_FALSE(res);
352
353 root["workId"] = 1;
354 res = workInfo.ParseFromJson(root);
355 EXPECT_FALSE(res);
356
357 root.clear();
358 root["bundleName"] = "bundleName";
359 res = workInfo.ParseFromJson(root);
360 EXPECT_FALSE(res);
361
362 root.clear();
363 root["abilityName"] = "abilityName";
364 res = workInfo.ParseFromJson(root);
365 EXPECT_FALSE(res);
366
367 root.clear();
368 root["workId"] = 1;
369 root["bundleName"] = "bundleName";
370 res = workInfo.ParseFromJson(root);
371 EXPECT_FALSE(res);
372
373 root.clear();
374 root["workId"] = 1;
375 root["abilityName"] = "abilityName";
376 res = workInfo.ParseFromJson(root);
377 EXPECT_FALSE(res);
378
379 root.clear();
380 root["bundleName"] = "bundleName";
381 root["abilityName"] = "abilityName";
382 res = workInfo.ParseFromJson(root);
383 EXPECT_FALSE(res);
384
385 root["workId"] = 1;
386 root["persisted"] = false;
387 root["callBySystemApp"] = false;
388 res = workInfo.ParseFromJson(root);
389 EXPECT_TRUE(res);
390 }
391
392 /**
393 * @tc.name WorkInfoTestJson003
394 * @tc.desc Set workInfo json func
395 * @tc.type FUNC
396 * @tc.require: issueI5Y6YK
397 */
398 HWTEST_F (WorkInfoTest, WorkInfoTestJson003, Function | MediumTest | Level0)
399 {
400 WorkInfo workInfo = WorkInfo();
401 Json::Value root;
402 root["workId"] = 1;
403 root["bundleName"] = "bundleName";
404 root["abilityName"] = "abilityName";
405 root["uid"] = 1;
406 Json::Value conditions;
407 conditions["network"] = 0;
408 conditions["isCharging"] = true;
409 conditions["batteryLevel"] = 0;
410 conditions["batteryStatus"] = 0;
411 conditions["storage"] = 0;
412 conditions["timer"] = 0;
413 root["conditions"] = conditions;
414 bool res = workInfo.ParseFromJson(root);
415 EXPECT_TRUE(res);
416
417 conditions.clear();
418 conditions["chargerType"] = 0;
419 conditions["repeat"] = true;
420 root["conditions"] = conditions;
421 res = workInfo.ParseFromJson(root);
422 EXPECT_TRUE(res);
423
424 conditions.clear();
425 conditions["isCharging"] = true;
426 conditions["chargerType"] = 0;
427 conditions["timer"] = 0;
428 conditions["repeat"] = true;
429 conditions["cycle"] = 0;
430 root["conditions"] = conditions;
431 res = workInfo.ParseFromJson(root);
432 EXPECT_TRUE(res);
433
434 conditions.clear();
435 conditions["timer"] = 0;
436 conditions["repeat"] = true;
437 root["conditions"] = conditions;
438 res = workInfo.ParseFromJson(root);
439 EXPECT_TRUE(res);
440
441 conditions.clear();
442 conditions["timer"] = 0;
443 conditions["repeat"] = false;
444 root["conditions"] = conditions;
445 res = workInfo.ParseFromJson(root);
446 EXPECT_TRUE(res);
447 }
448
449 /**
450 * @tc.name WorkInfoTestJson004
451 * @tc.desc Set workInfo json func
452 * @tc.type FUNC
453 * @tc.require: issueI5Y6YK
454 */
455 HWTEST_F (WorkInfoTest, WorkInfoTestJson004, Function | MediumTest | Level0)
456 {
457 WorkInfo workInfo = WorkInfo();
458 Json::Value root;
459 root["workId"] = 1;
460 root["bundleName"] = "bundleName";
461 root["abilityName"] = "abilityName";
462 root["uid"] = 1;
463 Json::Value extrasJson;
464 extrasJson["key1"] = "value1";
465 extrasJson["key2"] = "value2";
466 root["parameters"] = extrasJson;
467 Json::Value extrasType;
468 extrasType["key1"] = 9;
469 extrasType["key2"] = -1;
470 root["parametersType"] = extrasType;
471 bool res = workInfo.ParseFromJson(root);
472 EXPECT_TRUE(res);
473 }
474
475 /**
476 * @tc.name WorkInfoTest019
477 * @tc.desc Set workInfo Marshalling and Unmarshalling
478 * @tc.type FUNC
479 * @tc.require: issueI5Y6YK
480 */
481 HWTEST_F (WorkInfoTest, WorkInfoTest019, Function | MediumTest | Level0)
482 {
483 WorkInfo workInfo = WorkInfo();
484 workInfo.SetElement("bundle_name", "ability_name");
485 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
486 MessageParcel data;
487 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
488 sptr<WorkInfo> workInfoRead = data.ReadStrongParcelable<WorkInfo>();
489 EXPECT_EQ(workInfo.GetBatteryStatus(), workInfoRead->GetBatteryStatus());
490
491 workInfo.RequestChargerType(true, WorkCondition::Charger::CHARGING_PLUGGED_ANY);
492 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
493 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
494 EXPECT_EQ(workInfo.GetChargerType(), workInfoRead->GetChargerType());
495
496 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_LOW);
497 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
498 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
499 EXPECT_EQ(workInfo.GetStorageLevel(), workInfoRead->GetStorageLevel());
500
501 workInfo.RequestNetworkType(WorkCondition::Network::NETWORK_TYPE_ANY);
502 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
503 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
504 EXPECT_EQ(workInfo.GetNetworkType(), workInfoRead->GetNetworkType());
505
506 workInfo.RequestBatteryLevel(1);
507 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
508 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
509 EXPECT_EQ(workInfo.GetBatteryLevel(), workInfoRead->GetBatteryLevel());
510
511 uint32_t timeInterval = 120;
512 workInfo.RequestRepeatCycle(timeInterval);
513 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
514 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
515 EXPECT_EQ(workInfo.GetTimeInterval(), workInfoRead->GetTimeInterval());
516
517 workInfo.RequestRepeatCycle(timeInterval, 3);
518 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
519 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
520 EXPECT_EQ(workInfo.GetTimeInterval(), workInfoRead->GetTimeInterval());
521 }
522
523 /**
524 * @tc.name WorkInfoTest020
525 * @tc.desc Set workInfo Marshalling and Unmarshalling with extras.
526 * @tc.type FUNC
527 * @tc.require: issueI5Y6YK
528 */
529 HWTEST_F (WorkInfoTest, WorkInfoTest020, Function | MediumTest | Level0)
530 {
531 WorkInfo workInfo = WorkInfo();
532 workInfo.SetElement("bundle_name", "ability_name");
533 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
534 MessageParcel data;
535 AAFwk::WantParams extras;
536 workInfo.RequestExtras(extras);
537 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
538 sptr<WorkInfo> workInfoRead = data.ReadStrongParcelable<WorkInfo>();
539 EXPECT_EQ(workInfo.GetBundleName(), workInfoRead->GetBundleName());
540
541 extras.SetParam("key1", OHOS::AAFwk::String::Box("value1"));
542 workInfo.RequestExtras(extras);
543 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
544 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
545 std::string valueRead = workInfoRead->GetExtras()->GetStringParam("key1");
546 EXPECT_EQ(valueRead, "value1");
547
548 std::shared_ptr<Condition> condUnknown = std::make_shared<Condition>();
549 condUnknown->boolVal = true;
550 workInfo.conditionMap_.emplace(WorkCondition::Type::UNKNOWN, condUnknown);
551 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
552 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
553 auto condRead = workInfoRead->GetConditionMap();
554 EXPECT_EQ(workInfoRead->GetConditionMap()->size(), 2);
555 }
556 /**
557 * @tc.name WorkInfoTest021
558 * @tc.desc test SetCallBySystemApp.
559 * @tc.type FUNC
560 * @tc.require: issueI5Y6YK
561 */
562 HWTEST_F (WorkInfoTest, WorkInfoTest021, Function | MediumTest | Level0)
563 {
564 WorkInfo workInfo = WorkInfo();
565 workInfo.SetCallBySystemApp(true);
566 EXPECT_TRUE(workInfo.IsCallBySystemApp());
567 }
568
569 /**
570 * @tc.name WorkSchedUtils001
571 * @tc.desc test GetCurrentAccountId
572 * @tc.type FUNC
573 * @tc.require: issueI5Y6YK
574 */
575 HWTEST_F (WorkInfoTest, WorkSchedUtils001, Function | MediumTest | Level0)
576 {
577 int32_t res = WorkSchedUtils::GetCurrentAccountId();
578 EXPECT_NE(res, -1000);
579 }
580
581 /**
582 * @tc.name WorkSchedUtils002
583 * @tc.desc test IsIdActive
584 * @tc.type FUNC
585 * @tc.require: issueI5Y6YK
586 */
587 HWTEST_F (WorkInfoTest, WorkSchedUtils002, Function | MediumTest | Level0)
588 {
589 bool res = WorkSchedUtils::IsIdActive(0);
590 EXPECT_FALSE(res);
591 }
592
593 /**
594 * @tc.name WorkSchedUtils003
595 * @tc.desc test GetUserIdByUid
596 * @tc.type FUNC
597 * @tc.require: issueI5Y6YK
598 */
599 HWTEST_F (WorkInfoTest, WorkSchedUtils003, Function | MediumTest | Level0)
600 {
601 int32_t res = WorkSchedUtils::GetUserIdByUid(1);
602 EXPECT_EQ(res, 0);
603 res = WorkSchedUtils::GetUserIdByUid(INVALID_VALUE);
604 EXPECT_EQ(res, INVALID_VALUE);
605 }
606
607 /**
608 * @tc.name WorkSchedUtils004
609 * @tc.desc test ConvertFullPath
610 * @tc.type FUNC
611 * @tc.require: issueI5Y6YK
612 */
613 HWTEST_F (WorkInfoTest, WorkSchedUtils004, Function | MediumTest | Level0)
614 {
615 std::string partialPath;
616 std::string fullPath;
617 bool res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
618 EXPECT_FALSE(res);
619
620 std::string partialPathLong(4097, 'c');
621 res = WorkSchedUtils::ConvertFullPath(partialPathLong, fullPath);
622 EXPECT_FALSE(res);
623
624 partialPath = "partialPath";
625 res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
626 EXPECT_FALSE(res);
627
628 partialPath = "/data";
629 res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
630 EXPECT_TRUE(res);
631 }
632
633 /**
634 * @tc.name WorkSchedUtils005
635 * @tc.desc test WorkSchedHilog
636 * @tc.type FUNC
637 * @tc.require: issueI5Y6YK
638 */
639 HWTEST_F (WorkInfoTest, WorkSchedUtils005, Function | MediumTest | Level0)
640 {
641 WorkSchedLogLevel curLevel = {WorkSchedLogLevel::INFO};
642 WorkSchedHilog::SetLogLevel(curLevel);
643 bool res = WorkSchedHilog::JudgeLevel({WorkSchedLogLevel::DEBUG});
644 EXPECT_EQ(res, false);
645 WorkSchedHilog::GetBriefFileName(nullptr);
646 }
647
648 /**
649 * @tc.name WorkSchedUtils006
650 * @tc.desc test IsSystemApp
651 * @tc.type FUNC
652 * @tc.require: issueI5Y6YK
653 */
654 HWTEST_F (WorkInfoTest, WorkSchedUtils006, Function | MediumTest | Level0)
655 {
656 bool res = WorkSchedUtils::IsSystemApp();
657 EXPECT_EQ(res, false);
658 }
659 } // namespace WorkScheduler
660 } // namespace OHOS