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 res = workInfo.ParseFromJson(root);
388 EXPECT_TRUE(res);
389 }
390
391 /**
392 * @tc.name WorkInfoTestJson003
393 * @tc.desc Set workInfo json func
394 * @tc.type FUNC
395 * @tc.require: issueI5Y6YK
396 */
397 HWTEST_F (WorkInfoTest, WorkInfoTestJson003, Function | MediumTest | Level0)
398 {
399 WorkInfo workInfo = WorkInfo();
400 Json::Value root;
401 root["workId"] = 1;
402 root["bundleName"] = "bundleName";
403 root["abilityName"] = "abilityName";
404 root["uid"] = 1;
405 Json::Value conditions;
406 conditions["network"] = 0;
407 conditions["isCharging"] = true;
408 conditions["batteryLevel"] = 0;
409 conditions["batteryStatus"] = 0;
410 conditions["storage"] = 0;
411 conditions["timer"] = 0;
412 root["conditions"] = conditions;
413 bool res = workInfo.ParseFromJson(root);
414 EXPECT_TRUE(res);
415
416 conditions.clear();
417 conditions["chargerType"] = 0;
418 conditions["repeat"] = true;
419 root["conditions"] = conditions;
420 res = workInfo.ParseFromJson(root);
421 EXPECT_TRUE(res);
422
423 conditions.clear();
424 conditions["isCharging"] = true;
425 conditions["chargerType"] = 0;
426 conditions["timer"] = 0;
427 conditions["repeat"] = true;
428 conditions["cycle"] = 0;
429 root["conditions"] = conditions;
430 res = workInfo.ParseFromJson(root);
431 EXPECT_TRUE(res);
432
433 conditions.clear();
434 conditions["timer"] = 0;
435 conditions["repeat"] = true;
436 root["conditions"] = conditions;
437 res = workInfo.ParseFromJson(root);
438 EXPECT_TRUE(res);
439
440 conditions.clear();
441 conditions["timer"] = 0;
442 conditions["repeat"] = false;
443 root["conditions"] = conditions;
444 res = workInfo.ParseFromJson(root);
445 EXPECT_TRUE(res);
446 }
447
448 /**
449 * @tc.name WorkInfoTestJson004
450 * @tc.desc Set workInfo json func
451 * @tc.type FUNC
452 * @tc.require: issueI5Y6YK
453 */
454 HWTEST_F (WorkInfoTest, WorkInfoTestJson004, Function | MediumTest | Level0)
455 {
456 WorkInfo workInfo = WorkInfo();
457 Json::Value root;
458 root["workId"] = 1;
459 root["bundleName"] = "bundleName";
460 root["abilityName"] = "abilityName";
461 root["uid"] = 1;
462 Json::Value extrasJson;
463 extrasJson["key1"] = "value1";
464 extrasJson["key2"] = "value2";
465 root["parameters"] = extrasJson;
466 Json::Value extrasType;
467 extrasType["key1"] = 9;
468 extrasType["key2"] = -1;
469 root["parametersType"] = extrasType;
470 bool res = workInfo.ParseFromJson(root);
471 EXPECT_TRUE(res);
472 }
473
474 /**
475 * @tc.name WorkInfoTest019
476 * @tc.desc Set workInfo Marshalling and Unmarshalling
477 * @tc.type FUNC
478 * @tc.require: issueI5Y6YK
479 */
480 HWTEST_F (WorkInfoTest, WorkInfoTest019, Function | MediumTest | Level0)
481 {
482 WorkInfo workInfo = WorkInfo();
483 workInfo.SetElement("bundle_name", "ability_name");
484 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
485 MessageParcel data;
486 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
487 sptr<WorkInfo> workInfoRead = data.ReadStrongParcelable<WorkInfo>();
488 EXPECT_EQ(workInfo.GetBatteryStatus(), workInfoRead->GetBatteryStatus());
489
490 workInfo.RequestChargerType(true, WorkCondition::Charger::CHARGING_PLUGGED_ANY);
491 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
492 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
493 EXPECT_EQ(workInfo.GetChargerType(), workInfoRead->GetChargerType());
494
495 workInfo.RequestStorageLevel(WorkCondition::Storage::STORAGE_LEVEL_LOW);
496 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
497 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
498 EXPECT_EQ(workInfo.GetStorageLevel(), workInfoRead->GetStorageLevel());
499
500 workInfo.RequestNetworkType(WorkCondition::Network::NETWORK_TYPE_ANY);
501 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
502 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
503 EXPECT_EQ(workInfo.GetNetworkType(), workInfoRead->GetNetworkType());
504
505 workInfo.RequestBatteryLevel(1);
506 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
507 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
508 EXPECT_EQ(workInfo.GetBatteryLevel(), workInfoRead->GetBatteryLevel());
509
510 uint32_t timeInterval = 120;
511 workInfo.RequestRepeatCycle(timeInterval);
512 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
513 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
514 EXPECT_EQ(workInfo.GetTimeInterval(), workInfoRead->GetTimeInterval());
515
516 workInfo.RequestRepeatCycle(timeInterval, 3);
517 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
518 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
519 EXPECT_EQ(workInfo.GetTimeInterval(), workInfoRead->GetTimeInterval());
520 }
521
522 /**
523 * @tc.name WorkInfoTest020
524 * @tc.desc Set workInfo Marshalling and Unmarshalling with extras.
525 * @tc.type FUNC
526 * @tc.require: issueI5Y6YK
527 */
528 HWTEST_F (WorkInfoTest, WorkInfoTest020, Function | MediumTest | Level0)
529 {
530 WorkInfo workInfo = WorkInfo();
531 workInfo.SetElement("bundle_name", "ability_name");
532 workInfo.RequestBatteryStatus(WorkCondition::BatteryStatus::BATTERY_STATUS_OKAY);
533 MessageParcel data;
534 AAFwk::WantParams extras;
535 workInfo.RequestExtras(extras);
536 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
537 sptr<WorkInfo> workInfoRead = data.ReadStrongParcelable<WorkInfo>();
538 EXPECT_EQ(workInfo.GetBundleName(), workInfoRead->GetBundleName());
539
540 extras.SetParam("key1", OHOS::AAFwk::String::Box("value1"));
541 workInfo.RequestExtras(extras);
542 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
543 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
544 std::string valueRead = workInfoRead->GetExtras()->GetStringParam("key1");
545 EXPECT_EQ(valueRead, "value1");
546
547 std::shared_ptr<Condition> condUnknown = std::make_shared<Condition>();
548 condUnknown->boolVal = true;
549 workInfo.conditionMap_.emplace(WorkCondition::Type::UNKNOWN, condUnknown);
550 WRITE_PARCEL_WITHOUT_RET(data, Parcelable, &workInfo);
551 workInfoRead = data.ReadStrongParcelable<WorkInfo>();
552 auto condRead = workInfoRead->GetConditionMap();
553 EXPECT_EQ(workInfoRead->GetConditionMap()->size(), 2);
554 }
555
556 /**
557 * @tc.name WorkSchedUtils001
558 * @tc.desc test GetCurrentAccountId
559 * @tc.type FUNC
560 * @tc.require: issueI5Y6YK
561 */
562 HWTEST_F (WorkInfoTest, WorkSchedUtils001, Function | MediumTest | Level0)
563 {
564 int32_t res = WorkSchedUtils::GetCurrentAccountId();
565 EXPECT_NE(res, -1000);
566 }
567
568 /**
569 * @tc.name WorkSchedUtils002
570 * @tc.desc test IsIdActive
571 * @tc.type FUNC
572 * @tc.require: issueI5Y6YK
573 */
574 HWTEST_F (WorkInfoTest, WorkSchedUtils002, Function | MediumTest | Level0)
575 {
576 bool res = WorkSchedUtils::IsIdActive(0);
577 EXPECT_FALSE(res);
578 }
579
580 /**
581 * @tc.name WorkSchedUtils003
582 * @tc.desc test GetUserIdByUid
583 * @tc.type FUNC
584 * @tc.require: issueI5Y6YK
585 */
586 HWTEST_F (WorkInfoTest, WorkSchedUtils003, Function | MediumTest | Level0)
587 {
588 int32_t res = WorkSchedUtils::GetUserIdByUid(1);
589 EXPECT_EQ(res, 0);
590 res = WorkSchedUtils::GetUserIdByUid(INVALID_VALUE);
591 EXPECT_EQ(res, INVALID_VALUE);
592 }
593
594 /**
595 * @tc.name WorkSchedUtils004
596 * @tc.desc test ConvertFullPath
597 * @tc.type FUNC
598 * @tc.require: issueI5Y6YK
599 */
600 HWTEST_F (WorkInfoTest, WorkSchedUtils004, Function | MediumTest | Level0)
601 {
602 std::string partialPath;
603 std::string fullPath;
604 bool res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
605 EXPECT_FALSE(res);
606
607 std::string partialPathLong(4097, 'c');
608 res = WorkSchedUtils::ConvertFullPath(partialPathLong, fullPath);
609 EXPECT_FALSE(res);
610
611 partialPath = "partialPath";
612 res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
613 EXPECT_FALSE(res);
614
615 partialPath = "/data";
616 res = WorkSchedUtils::ConvertFullPath(partialPath, fullPath);
617 EXPECT_TRUE(res);
618 }
619
620 /**
621 * @tc.name WorkSchedUtils005
622 * @tc.desc test WorkSchedHilog
623 * @tc.type FUNC
624 * @tc.require: issueI5Y6YK
625 */
626 HWTEST_F (WorkInfoTest, WorkSchedUtils005, Function | MediumTest | Level0)
627 {
628 WorkSchedLogLevel curLevel = {WorkSchedLogLevel::INFO};
629 WorkSchedHilog::SetLogLevel(curLevel);
630 bool res = WorkSchedHilog::JudgeLevel({WorkSchedLogLevel::DEBUG});
631 EXPECT_EQ(res, false);
632 WorkSchedHilog::GetBriefFileName(nullptr);
633 }
634 } // namespace WorkScheduler
635 } // namespace OHOS