• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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