1 /* 2 * Copyright (c) 2023 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 <gtest/gtest.h> 17 18 #include "update_policy_utils.h" 19 20 using namespace testing::ext; 21 using namespace OHOS::EDM; 22 23 namespace OHOS { 24 namespace EDM { 25 namespace TEST { 26 const std::string TEST_VERSION = "testVersion"; 27 const std::string TEST_INSTALL_TIPS = "installTip"; 28 const std::string TEST_INSTALL_TIPS_DEATIL = "installTipDetail"; 29 constexpr uint32_t MAX_PACKAGES_SIZE = 10; 30 class UpdatePolicyUtilsTest : public testing::Test {}; 31 32 /* 33 *@tc.name: TestProcessPackageTypeWithUnknownType 34 *@tc.desc: Test ProcessPackageType success func. 35 *@tc.type: FUNC 36 */ 37 HWTEST_F(UpdatePolicyUtilsTest, TestProcessPackageTypeWithUnknownType, TestSize.Level1) 38 { 39 PackageType packageType; 40 UpdatePolicyUtils::ProcessPackageType(static_cast<int32_t>(PackageType::UNKNOWN), packageType); 41 42 ASSERT_TRUE(packageType == PackageType::UNKNOWN); 43 } 44 45 /* 46 *@tc.name: TestProcessPackageTypeWithInllegalType 47 *@tc.desc: Test ProcessPackageType success func. 48 *@tc.type: FUNC 49 */ 50 HWTEST_F(UpdatePolicyUtilsTest, TestProcessPackageTypeWithInllegalType, TestSize.Level1) 51 { 52 PackageType packageType; 53 UpdatePolicyUtils::ProcessPackageType(10, packageType); 54 55 ASSERT_TRUE(packageType == PackageType::UNKNOWN); 56 } 57 58 /* 59 *@tc.name: TestProcessPackageTypeWithFirmwareType 60 *@tc.desc: Test ProcessPackageType success func. 61 *@tc.type: FUNC 62 */ 63 HWTEST_F(UpdatePolicyUtilsTest, TestProcessPackageTypeWithFirmwareType, TestSize.Level1) 64 { 65 PackageType packageType; 66 UpdatePolicyUtils::ProcessPackageType(static_cast<int32_t>(PackageType::FIRMWARE), packageType); 67 68 ASSERT_TRUE(packageType == PackageType::FIRMWARE); 69 } 70 71 /* 72 *@tc.name: TestReadUpgradePackageInfoWithPackageOutOfBund 73 *@tc.desc: Test ProcessPackageType success func. 74 *@tc.type: FUNC 75 */ 76 HWTEST_F(UpdatePolicyUtilsTest, TestReadUpgradePackageInfoWithPackageOutOfBund, TestSize.Level1) 77 { 78 MessageParcel data; 79 UpgradePackageInfo packageInfo; 80 std::vector<Package> packages; 81 packages.insert(packages.begin(), MAX_PACKAGES_SIZE + 1, {"", PackageType::UNKNOWN, 1}); 82 packageInfo.version = TEST_VERSION; 83 packageInfo.packages = packages; 84 packageInfo.description.notify.installTips = TEST_INSTALL_TIPS; 85 packageInfo.description.notify.installTipsDetail = TEST_INSTALL_TIPS_DEATIL; 86 UpdatePolicyUtils::WriteUpgradePackageInfo(data, packageInfo); 87 88 UpgradePackageInfo packageInfo2; 89 UpdatePolicyUtils::ReadUpgradePackageInfo(data, packageInfo2); 90 ASSERT_TRUE(packageInfo2.version == TEST_VERSION); 91 ASSERT_TRUE(packageInfo2.packages.empty()); 92 ASSERT_TRUE(packageInfo2.description.notify.installTips.empty()); 93 ASSERT_TRUE(packageInfo2.description.notify.installTipsDetail.empty()); 94 } 95 96 /* 97 *@tc.name: TestReadUpgradePackageInfoSuc 98 *@tc.desc: Test ProcessPackageType success func. 99 *@tc.type: FUNC 100 */ 101 HWTEST_F(UpdatePolicyUtilsTest, TestReadUpgradePackageInfoSuc, TestSize.Level1) 102 { 103 MessageParcel data; 104 UpgradePackageInfo packageInfo; 105 std::vector<Package> packages; 106 packages.insert(packages.begin(), MAX_PACKAGES_SIZE, {"", PackageType::UNKNOWN, 1}); 107 packageInfo.version = TEST_VERSION; 108 packageInfo.packages = packages; 109 packageInfo.description.notify.installTips = TEST_INSTALL_TIPS; 110 packageInfo.description.notify.installTipsDetail = TEST_INSTALL_TIPS_DEATIL; 111 UpdatePolicyUtils::WriteUpgradePackageInfo(data, packageInfo); 112 113 UpgradePackageInfo packageInfo2; 114 UpdatePolicyUtils::ReadUpgradePackageInfo(data, packageInfo2); 115 ASSERT_TRUE(packageInfo2.version == TEST_VERSION); 116 ASSERT_TRUE(packageInfo2.packages.size() == packages.size()); 117 ASSERT_TRUE(packageInfo2.description.notify.installTips == TEST_INSTALL_TIPS); 118 ASSERT_TRUE(packageInfo2.description.notify.installTipsDetail == TEST_INSTALL_TIPS_DEATIL); 119 } 120 } // namespace TEST 121 } // namespace EDM 122 } // namespace OHOS