• 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     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