1 /* 2 * Copyright (c) 2022-2024 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 16 #include <cstdio> 17 #include <cstdlib> 18 19 #include <dirent.h> 20 #include <fcntl.h> 21 22 #include <errors.h> 23 #include <file_ex.h> 24 #include <gtest/gtest.h> 25 26 #include "b_jsonutil/b_jsonutil.h" 27 #include "b_process/b_process.h" 28 #include "test_manager.h" 29 30 namespace OHOS::FileManagement::Backup { 31 using namespace std; 32 33 namespace { 34 constexpr uint32_t TEST_USER_ID = 100; 35 } // namespace 36 37 class BJsonUtilTest : public testing::Test { 38 public: SetUpTestCase(void)39 static void SetUpTestCase(void) {}; TearDownTestCase()40 static void TearDownTestCase() {}; SetUp()41 void SetUp() {}; TearDown()42 void TearDown() {}; 43 }; 44 45 /** 46 * @tc.number: b_jsonutil_ParseBundleNameIndexStr_0100 47 * @tc.name: b_jsonutil_ParseBundleNameIndexStr_0100 48 * @tc.desc: Test function of ParseBundleNameIndexStr interface for SUCCESS. 49 * @tc.size: MEDIUM 50 * @tc.type: FUNC 51 * @tc.level Level 0 52 * @tc.require: I6F3GV 53 */ 54 HWTEST_F(BJsonUtilTest, b_jsonutil_ParseBundleNameIndexStr_0100, testing::ext::TestSize.Level0) 55 { 56 GTEST_LOG_(INFO) << "BJsonUtilTest-begin b_dir_GetDirFiles_0100"; 57 try { 58 std::string bundleName = "com.hos.app01:1"; 59 BJsonUtil::BundleDetailInfo detailInfo = BJsonUtil::ParseBundleNameIndexStr(bundleName); 60 EXPECT_EQ("com.hos.app01", detailInfo.bundleName); 61 } catch (...) { 62 EXPECT_TRUE(false); 63 GTEST_LOG_(INFO) << "BDirTest-an exception occurred."; 64 } 65 GTEST_LOG_(INFO) << "BDirTest-end b_dir_GetDirFiles_0100"; 66 } 67 68 /** 69 * @tc.number: b_jsonutil_ParseBundleNameIndexStr_0200 70 * @tc.name: b_jsonutil_ParseBundleNameIndexStr_0200 71 * @tc.desc: Test function of ParseBundleNameIndexStr interface for SUCCESS. 72 * @tc.size: MEDIUM 73 * @tc.type: FUNC 74 * @tc.level Level 0 75 * @tc.require: I6F3GV 76 */ 77 HWTEST_F(BJsonUtilTest, b_jsonutil_ParseBundleNameIndexStr_0200, testing::ext::TestSize.Level0) 78 { 79 GTEST_LOG_(INFO) << "BJsonUtilTest-begin ParseBundleNameIndexStr_0200"; 80 try { 81 std::string bundleName = "com.hos.app01"; 82 BJsonUtil::BundleDetailInfo detailInfo = BJsonUtil::ParseBundleNameIndexStr(bundleName); 83 EXPECT_EQ("com.hos.app01", detailInfo.bundleName); 84 } catch (...) { 85 EXPECT_TRUE(false); 86 GTEST_LOG_(INFO) << "BDirTest-an exception occurred."; 87 } 88 GTEST_LOG_(INFO) << "BDirTest-end ParseBundleNameIndexStr_0200"; 89 } 90 91 /** 92 * @tc.number: b_jsonutil_BuildBundleInfos_0100 93 * @tc.name: b_jsonutil_BuildBundleInfos_0100 94 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 95 * @tc.size: MEDIUM 96 * @tc.type: FUNC 97 * @tc.level Level 0 98 * @tc.require: I6F3GV 99 */ 100 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0100, testing::ext::TestSize.Level0) 101 { 102 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0100"; 103 try { 104 std::vector<std::string> bundleNames; 105 std::string bundleName = "com.hos.app01:1"; 106 bundleNames.push_back(bundleName); 107 std::vector<std::string> bundleInfos; 108 std::string bundleInfo = "info1"; 109 std::string bundleInfo2 = "info2"; 110 bundleInfos.push_back(bundleInfo); 111 bundleInfos.push_back(bundleInfo2); 112 int32_t userId = TEST_USER_ID; 113 std::vector<std::string> bundleNamesOnly; 114 std::map<std::string, bool> isClearDataFlags; 115 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 116 userId, isClearDataFlags); 117 EXPECT_TRUE(result.empty()); 118 } catch (...) { 119 EXPECT_TRUE(false); 120 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 121 } 122 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0100"; 123 } 124 125 /** 126 * @tc.number: b_jsonutil_BuildBundleInfos_0200 127 * @tc.name: b_jsonutil_BuildBundleInfos_0200 128 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 129 * @tc.size: MEDIUM 130 * @tc.type: FUNC 131 * @tc.level Level 0 132 * @tc.require: I6F3GV 133 */ 134 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0200, testing::ext::TestSize.Level0) 135 { 136 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0200"; 137 try { 138 std::vector<std::string> bundleNames; 139 std::string bundleName = "bundle"; 140 bundleNames.push_back(bundleName); 141 std::vector<std::string> bundleInfos; 142 std::string bundleInfo = "{\"infos\":\"infos\"}"; 143 bundleInfos.push_back(bundleInfo); 144 int32_t userId = TEST_USER_ID; 145 std::vector<std::string> bundleNamesOnly; 146 std::map<std::string, bool> isClearDataFlags; 147 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 148 userId, isClearDataFlags); 149 EXPECT_FALSE(result.empty()); 150 } catch (...) { 151 EXPECT_TRUE(false); 152 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 153 } 154 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0200"; 155 } 156 157 /** 158 * @tc.number: b_jsonutil_BuildBundleInfos_0300 159 * @tc.name: b_jsonutil_BuildBundleInfos_0300 160 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 161 * @tc.size: MEDIUM 162 * @tc.type: FUNC 163 * @tc.level Level 0 164 * @tc.require: I6F3GV 165 */ 166 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0300, testing::ext::TestSize.Level0) 167 { 168 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0300"; 169 try { 170 std::vector<std::string> bundleNames; 171 std::string bundleName = "bundle1:"; 172 bundleNames.push_back(bundleName); 173 std::vector<std::string> bundleInfos; 174 std::string bundleInfo = "info1"; 175 bundleInfos.push_back(bundleInfo); 176 int32_t userId = TEST_USER_ID; 177 std::vector<std::string> bundleNamesOnly; 178 std::map<std::string, bool> isClearDataFlags; 179 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 180 userId, isClearDataFlags); 181 EXPECT_TRUE(result.empty()); 182 } catch (...) { 183 EXPECT_TRUE(false); 184 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 185 } 186 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0300"; 187 } 188 189 /** 190 * @tc.number: b_jsonutil_BuildBundleInfos_0301 191 * @tc.name: b_jsonutil_BuildBundleInfos_0301 192 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 193 * @tc.size: MEDIUM 194 * @tc.type: FUNC 195 * @tc.level Level 0 196 * @tc.require: I6F3GV 197 */ 198 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0301, testing::ext::TestSize.Level0) 199 { 200 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0301"; 201 try { 202 std::vector<std::string> bundleNames; 203 std::string bundleName = ":bundle1"; 204 bundleNames.push_back(bundleName); 205 std::vector<std::string> bundleInfos; 206 std::string bundleInfo = "info1"; 207 bundleInfos.push_back(bundleInfo); 208 int32_t userId = TEST_USER_ID; 209 std::vector<std::string> bundleNamesOnly; 210 std::map<std::string, bool> isClearDataFlags; 211 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 212 userId, isClearDataFlags); 213 EXPECT_TRUE(result.empty()); 214 } catch (...) { 215 EXPECT_TRUE(false); 216 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 217 } 218 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0301"; 219 } 220 221 /** 222 * @tc.number: b_jsonutil_BuildBundleInfos_0400 223 * @tc.name: b_jsonutil_BuildBundleInfos_0400 224 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 225 * @tc.size: MEDIUM 226 * @tc.type: FUNC 227 * @tc.level Level 0 228 * @tc.require: I6F3GV 229 */ 230 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0400, testing::ext::TestSize.Level0) 231 { 232 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0400"; 233 try { 234 std::vector<std::string> bundleNames; 235 std::string bundleName = "bundle1"; 236 bundleNames.push_back(bundleName); 237 std::vector<std::string> bundleInfos; 238 std::string bundleInfo = { 239 "{\"infos\":[{\"type\":\"type1\",\"details\":\"details1\"}],\"clearBackupData\": \"false\"}" 240 }; 241 bundleInfos.push_back(bundleInfo); 242 int32_t userId = TEST_USER_ID; 243 std::vector<std::string> bundleNamesOnly; 244 std::map<std::string, bool> isClearDataFlags; 245 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 246 userId, isClearDataFlags); 247 EXPECT_EQ(isClearDataFlags[bundleName], false); 248 EXPECT_FALSE(result.empty()); 249 } catch (...) { 250 EXPECT_TRUE(false); 251 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 252 } 253 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0400"; 254 } 255 256 /** 257 * @tc.number: b_jsonutil_BuildBundleInfos_0500 258 * @tc.name: b_jsonutil_BuildBundleInfos_0500 259 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 260 * @tc.size: MEDIUM 261 * @tc.type: FUNC 262 * @tc.level Level 0 263 * @tc.require: I6F3GV 264 */ 265 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0500, testing::ext::TestSize.Level0) 266 { 267 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0500"; 268 try { 269 std::vector<std::string> bundleNames; 270 std::string bundleName = "bundle"; 271 bundleNames.push_back(bundleName); 272 std::vector<std::string> bundleInfos; 273 std::string bundleInfo = {"{\"infos\":[{\"type\":null}]}"}; 274 bundleInfos.push_back(bundleInfo); 275 int32_t userId = TEST_USER_ID; 276 std::vector<std::string> bundleNamesOnly; 277 std::map<std::string, bool> isClearDataFlags; 278 279 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 280 userId, isClearDataFlags); 281 EXPECT_EQ(isClearDataFlags[bundleName], true); 282 EXPECT_FALSE(result.empty()); 283 } catch (...) { 284 EXPECT_TRUE(false); 285 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 286 } 287 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0500"; 288 } 289 290 /** 291 * @tc.number: b_jsonutil_BuildBundleInfos_0600 292 * @tc.name: b_jsonutil_BuildBundleInfos_0600 293 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 294 * @tc.size: MEDIUM 295 * @tc.type: FUNC 296 * @tc.level Level 0 297 * @tc.require: I6F3GV 298 */ 299 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0600, testing::ext::TestSize.Level0) 300 { 301 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0600"; 302 try { 303 std::vector<std::string> bundleNames; 304 std::string bundleName = "bundle"; 305 bundleNames.push_back(bundleName); 306 std::vector<std::string> bundleInfos; 307 std::string bundleInfo = {"{\"infos\":[{\"type\":123}],\"clearBackupData\": \"true\"}"}; 308 bundleInfos.push_back(bundleInfo); 309 int32_t userId = TEST_USER_ID; 310 std::vector<std::string> bundleNamesOnly; 311 std::map<std::string, bool> isClearDataFlags; 312 313 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 314 userId, isClearDataFlags); 315 EXPECT_EQ(isClearDataFlags[bundleName], true); 316 EXPECT_FALSE(result.empty()); 317 } catch (...) { 318 EXPECT_TRUE(false); 319 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 320 } 321 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0600"; 322 } 323 324 /** 325 * @tc.number: b_jsonutil_BuildBundleInfos_0700 326 * @tc.name: b_jsonutil_BuildBundleInfos_0700 327 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 328 * @tc.size: MEDIUM 329 * @tc.type: FUNC 330 * @tc.level Level 0 331 * @tc.require: I6F3GV 332 */ 333 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0700, testing::ext::TestSize.Level0) 334 { 335 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0700"; 336 try { 337 std::vector<std::string> bundleNames; 338 std::string bundleName = "bundle"; 339 bundleNames.push_back(bundleName); 340 std::vector<std::string> bundleInfos; 341 std::string bundleInfo = {"{\"infos\":[{\"type\":\"testType\",\"details\":null}]}"}; 342 bundleInfos.push_back(bundleInfo); 343 int32_t userId = TEST_USER_ID; 344 std::vector<std::string> bundleNamesOnly; 345 std::map<std::string, bool> isClearDataFlags; 346 347 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 348 userId, isClearDataFlags); 349 EXPECT_FALSE(result.empty()); 350 } catch (...) { 351 EXPECT_TRUE(false); 352 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 353 } 354 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0700"; 355 } 356 357 /** 358 * @tc.number: b_jsonutil_BuildBundleInfos_0800 359 * @tc.name: b_jsonutil_BuildBundleInfos_0800 360 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 361 * @tc.size: MEDIUM 362 * @tc.type: FUNC 363 * @tc.level Level 0 364 * @tc.require: I6F3GV 365 */ 366 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0800, testing::ext::TestSize.Level0) 367 { 368 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0800"; 369 try { 370 std::vector<std::string> bundleNames; 371 std::string bundleName = "bundle"; 372 bundleNames.push_back(bundleName); 373 std::vector<std::string> bundleInfos; 374 std::string bundleInfo = {"{\"infos\":[{\"type\":\"testType\",\"details\":[]}]}"}; 375 bundleInfos.push_back(bundleInfo); 376 int32_t userId = TEST_USER_ID; 377 std::vector<std::string> bundleNamesOnly; 378 std::map<std::string, bool> isClearDataFlags; 379 380 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 381 userId, isClearDataFlags); 382 EXPECT_FALSE(result.empty()); 383 } catch (...) { 384 EXPECT_TRUE(false); 385 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 386 } 387 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0800"; 388 } 389 390 /** 391 * @tc.number: b_jsonutil_BuildBundleInfos_0900 392 * @tc.name: b_jsonutil_BuildBundleInfos_0900 393 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 394 * @tc.size: MEDIUM 395 * @tc.type: FUNC 396 * @tc.level Level 0 397 * @tc.require: I6F3GV 398 */ 399 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0900, testing::ext::TestSize.Level0) 400 { 401 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0900"; 402 try { 403 std::vector<std::string> bundleNames; 404 std::string bundleName = "bundle"; 405 bundleNames.push_back(bundleName); 406 std::vector<std::string> bundleInfos; 407 std::string bundleInfo = {"{\"infos\":[{\"type\":\"testType\",\"details\":[\"detail\"]}]}"}; 408 bundleInfos.push_back(bundleInfo); 409 int32_t userId = TEST_USER_ID; 410 std::vector<std::string> bundleNamesOnly; 411 std::map<std::string, bool> isClearDataFlags; 412 413 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 414 userId, isClearDataFlags); 415 EXPECT_FALSE(result.empty()); 416 } catch (...) { 417 EXPECT_TRUE(false); 418 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 419 } 420 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_0900"; 421 } 422 423 /** 424 * @tc.number: b_jsonutil_BuildBundleInfos_1000 425 * @tc.name: b_jsonutil_BuildBundleInfos_1000 426 * @tc.desc: Test function of BuildBundleInfos interface for SUCCESS. 427 * @tc.size: MEDIUM 428 * @tc.type: FUNC 429 * @tc.level Level 0 430 * @tc.require: I6F3GV 431 */ 432 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_1000, testing::ext::TestSize.Level0) 433 { 434 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_1000"; 435 try { 436 std::vector<std::string> bundleNames; 437 std::string bundleName = "bundle"; 438 bundleNames.push_back(bundleName); 439 std::vector<std::string> bundleInfos; 440 std::string bundleInfo = {"{\"infos\":[\"infos\"]}"}; 441 bundleInfos.push_back(bundleInfo); 442 int32_t userId = TEST_USER_ID; 443 std::vector<std::string> bundleNamesOnly; 444 std::map<std::string, bool> isClearDataFlags; 445 446 auto result = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, 447 userId, isClearDataFlags); 448 EXPECT_FALSE(result.empty()); 449 } catch (...) { 450 EXPECT_TRUE(false); 451 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 452 } 453 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleInfos_1000"; 454 } 455 456 /** 457 * @tc.number: b_jsonutil_FindBundleInfoByName_0100 458 * @tc.name: b_jsonutil_FindBundleInfoByName_0100 459 * @tc.desc: Test function of FindBundleInfoByName interface for SUCCESS. 460 * @tc.size: MEDIUM 461 * @tc.type: FUNC 462 * @tc.level Level 0 463 * @tc.require: I6F3GV 464 */ 465 HWTEST_F(BJsonUtilTest, b_jsonutil_FindBundleInfoByName_0100, testing::ext::TestSize.Level0) 466 { 467 GTEST_LOG_(INFO) << "BJsonUtilTest-begin FindBundleInfoByName_0100"; 468 try { 469 std::map<std::string, std::vector<BJsonUtil::BundleDetailInfo>> bundleNameDetailsMap; 470 std::string bundleName = "bundle1"; 471 std::string jobType = "type"; 472 BJsonUtil::BundleDetailInfo bundleDetail; 473 474 bool result = BJsonUtil::FindBundleInfoByName(bundleNameDetailsMap, bundleName, jobType, bundleDetail); 475 EXPECT_EQ(false, result); 476 } catch (...) { 477 EXPECT_TRUE(false); 478 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 479 } 480 GTEST_LOG_(INFO) << "BJsonUtilTest-end FindBundleInfoByName_0100"; 481 } 482 483 /** 484 * @tc.number: b_jsonutil_FindBundleInfoByName_0200 485 * @tc.name: b_jsonutil_FindBundleInfoByName_0200 486 * @tc.desc: Test function of FindBundleInfoByName interface for SUCCESS. 487 * @tc.size: MEDIUM 488 * @tc.type: FUNC 489 * @tc.level Level 0 490 * @tc.require: I6F3GV 491 */ 492 HWTEST_F(BJsonUtilTest, b_jsonutil_FindBundleInfoByName_0200, testing::ext::TestSize.Level0) 493 { 494 GTEST_LOG_(INFO) << "BJsonUtilTest-begin FindBundleInfoByName_0200"; 495 try { 496 std::map<std::string, std::vector<BJsonUtil::BundleDetailInfo>> bundleNameDetailsMap; 497 std::string bundleName = "bundle1"; 498 std::string jobType = "type"; 499 BJsonUtil::BundleDetailInfo detailInfo; 500 detailInfo.bundleName = bundleName; 501 detailInfo.type = jobType; 502 bundleNameDetailsMap[bundleName] = {detailInfo}; 503 BJsonUtil::BundleDetailInfo bundleDetail; 504 505 bool result = BJsonUtil::FindBundleInfoByName(bundleNameDetailsMap, bundleName, jobType, bundleDetail); 506 EXPECT_EQ(true, result); 507 EXPECT_EQ(bundleDetail.type, detailInfo.type); 508 } catch (...) { 509 EXPECT_TRUE(false); 510 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 511 } 512 GTEST_LOG_(INFO) << "BJsonUtilTest-end FindBundleInfoByName_0200"; 513 } 514 515 /** 516 * @tc.number: b_jsonutil_FindBundleInfoByName_0300 517 * @tc.name: b_jsonutil_FindBundleInfoByName_0300 518 * @tc.desc: Test function of FindBundleInfoByName interface for SUCCESS. 519 * @tc.size: MEDIUM 520 * @tc.type: FUNC 521 * @tc.level Level 0 522 * @tc.require: I6F3GV 523 */ 524 HWTEST_F(BJsonUtilTest, b_jsonutil_FindBundleInfoByName_0300, testing::ext::TestSize.Level0) 525 { 526 GTEST_LOG_(INFO) << "BJsonUtilTest-begin FindBundleInfoByName_0300"; 527 try { 528 std::map<std::string, std::vector<BJsonUtil::BundleDetailInfo>> bundleNameDetailsMap; 529 std::string bundleName = "bundle1"; 530 std::string jobType = "type"; 531 std::string jobType1 = "type1"; 532 BJsonUtil::BundleDetailInfo detailInfo; 533 detailInfo.bundleName = bundleName; 534 detailInfo.type = jobType; 535 bundleNameDetailsMap[bundleName] = {detailInfo}; 536 BJsonUtil::BundleDetailInfo bundleDetail; 537 538 bool result = BJsonUtil::FindBundleInfoByName(bundleNameDetailsMap, bundleName, jobType1, bundleDetail); 539 EXPECT_EQ(false, result); 540 } catch (...) { 541 EXPECT_TRUE(false); 542 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 543 } 544 GTEST_LOG_(INFO) << "BJsonUtilTest-end FindBundleInfoByName_0300"; 545 } 546 547 /** 548 * @tc.number: b_jsonutil_BuildExtensionErrInfo_0100 549 * @tc.name: b_jsonutil_BuildExtensionErrInfo_0100 550 * @tc.desc: Test function of BuildExtensionErrInfo interface for SUCCESS. 551 * @tc.size: MEDIUM 552 * @tc.type: FUNC 553 * @tc.level Level 0 554 * @tc.require: I6F3GV 555 */ 556 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildExtensionErrInfo_0100, testing::ext::TestSize.Level0) 557 { 558 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildExtensionErrInfo_0100"; 559 try { 560 std::string jsonStr; 561 int errCode = 1; 562 std::string errMsg = "error"; 563 564 bool result = BJsonUtil::BuildExtensionErrInfo(jsonStr, errCode, errMsg); 565 EXPECT_EQ(true, result); 566 EXPECT_NE(jsonStr.find("errorCode"), std::string::npos); 567 EXPECT_NE(jsonStr.find("errorInfo"), std::string::npos); 568 EXPECT_NE(jsonStr.find("type"), std::string::npos); 569 } catch (...) { 570 EXPECT_TRUE(false); 571 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 572 } 573 GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildExtensionErrInfo_0100"; 574 } 575 576 /* * 577 * @tc.number: b_jsonutil_BuildBundleInfos_0101 578 * @tc.name: b_jsonutil_BuildBundleInfos_0101 579 * @tc.desc: Test function of BuildBundleInfos for enmpty. 580 * @tc.size: MEDIUM 581 * @tc.type: FUNC 582 * @tc.level Level 0 583 * @tc.require: I6F3GV 584 */ 585 HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleInfos_0101, testing::ext::TestSize.Level0) 586 { 587 GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildBundleInfos_0101"; 588 try { 589 std::vector<std::string> bundleNames; 590 std::string bundleName = "com.hos.app01:1"; 591 std::string bundleName1 = "com.hos.app02"; 592 bundleNames.push_back(bundleName); 593 bundleNames.push_back(bundleName1); 594 std::string pattern = ":"; 595 std::vector<std::string> detailInfos; 596 detailInfos.push_back(""); 597 int32_t userId = 100; 598 std::vector<std::string> realBundleNames; 599 std::map<std::string, bool> isClearDataFlags; 600 std::map<std::string, std::vector<BJsonUtil::BundleDetailInfo>> bundleNameDetailMap = 601 BJsonUtil::BuildBundleInfos(bundleNames, detailInfos, realBundleNames, 602 userId, isClearDataFlags); 603 EXPECT_EQ(0, bundleNameDetailMap.size()); 604 } catch (...) { 605 EXPECT_TRUE(false); 606 GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred."; 607 } 608 GTEST_LOG_(INFO) << "BJsonUtilTest-end b_jsonutil_BuildBundleInfos_0101"; 609 } 610 } // namespace OHOS::FileManagement::Backup