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 16 #include <gtest/gtest.h> 17 #include <ipc_skeleton.h> 18 19 #include "edm_ipc_interface_code.h" 20 #include "edm_log.h" 21 #include "func_code_utils.h" 22 23 using namespace testing::ext; 24 using namespace OHOS::EDM; 25 26 namespace OHOS { 27 namespace EDM { 28 namespace TEST { 29 class UtilsTest : public testing::Test {}; 30 const std::string TEST_STRING_INDEX_ZORE = "19216811"; 31 const std::string TEST_STRING_INDEX_ONE = "19216812"; 32 const std::string TEST_STRING_INDEX_TWO = "19216813"; 33 const std::string TEST_STRING_INDEX_THREE = "19216814"; 34 35 /** 36 * @tc.name: Test_FuncCodeUtils_ConvertSystemFlag 37 * @tc.desc: Test FuncCodeUtils::ConvertOperateType. 38 * @tc.type: FUNC 39 */ 40 HWTEST_F(UtilsTest, Test_FuncCodeUtils_ConvertSystemFlag, TestSize.Level1) 41 { 42 FuncOperateType type = FuncCodeUtils::ConvertOperateType(0); 43 ASSERT_EQ(type, FuncOperateType::GET); 44 type = FuncCodeUtils::ConvertOperateType(1); 45 ASSERT_EQ(type, FuncOperateType::SET); 46 type = FuncCodeUtils::ConvertOperateType(2); 47 ASSERT_EQ(type, FuncOperateType::REMOVE); 48 } 49 50 /** 51 * @tc.name: Test_FuncCodeUtils 52 * @tc.desc: Test FuncCodeUtils functions 53 * @tc.type: FUNC 54 */ 55 HWTEST_F(UtilsTest, Test_FuncCodeUtils, TestSize.Level1) 56 { 57 uint32_t code = 58 FuncCodeUtils::CreateFuncCode(1, (std::uint32_t)FuncOperateType::SET, EdmInterfaceCode::SET_DATETIME); 59 ASSERT_TRUE(FuncCodeUtils::IsPolicyFlag(code)); 60 ASSERT_FALSE(FuncCodeUtils::IsServiceFlag(code)); 61 ASSERT_TRUE(FuncCodeUtils::GetOperateType(code) == FuncOperateType::SET); 62 ASSERT_TRUE(FuncCodeUtils::GetSystemFlag(code) == FuncFlag::POLICY_FLAG); 63 ASSERT_TRUE(FuncCodeUtils::GetPolicyCode(code) == EdmInterfaceCode::SET_DATETIME); 64 65 code = EdmInterfaceCode::ADD_DEVICE_ADMIN; 66 ASSERT_FALSE(FuncCodeUtils::IsPolicyFlag(code)); 67 ASSERT_TRUE(FuncCodeUtils::IsServiceFlag(code)); 68 } 69 70 71 /** 72 * @tc.name: Test_ArrayPolicyUtils_RemovePolicy 73 * @tc.desc: Test ArrayPolicyUtils::RemovePolicy. 74 * @tc.type: FUNC 75 */ 76 HWTEST_F(UtilsTest, Test_ArrayPolicyUtils_RemovePolicy, TestSize.Level1) 77 { 78 std::vector<std::string> removeData; 79 std::vector<std::string> currentData; 80 81 removeData = {TEST_STRING_INDEX_ZORE}; 82 currentData = {TEST_STRING_INDEX_ZORE, TEST_STRING_INDEX_ONE, TEST_STRING_INDEX_TWO}; 83 ArrayPolicyUtils::RemovePolicy(removeData, currentData); 84 ASSERT_TRUE(currentData.size() == 2); 85 86 removeData = {TEST_STRING_INDEX_ZORE}; 87 currentData = {}; 88 ArrayPolicyUtils::RemovePolicy(removeData, currentData); 89 ASSERT_TRUE(currentData.empty()); 90 91 removeData = {}; 92 currentData = {TEST_STRING_INDEX_ZORE, TEST_STRING_INDEX_ONE, TEST_STRING_INDEX_TWO}; 93 ArrayPolicyUtils::RemovePolicy(removeData, currentData); 94 ASSERT_TRUE(currentData.size() == 3); 95 96 removeData = {TEST_STRING_INDEX_THREE}; 97 currentData = {TEST_STRING_INDEX_ZORE, TEST_STRING_INDEX_ONE, TEST_STRING_INDEX_TWO}; 98 ArrayPolicyUtils::RemovePolicy(removeData, currentData); 99 ASSERT_TRUE(currentData.size() == 3); 100 } 101 102 /** 103 * @tc.name: Test_ArrayPolicyUtils_ArrayStringContains 104 * @tc.desc: Test ArrayPolicyUtils::ArrayStringContains. 105 * @tc.type: FUNC 106 */ 107 HWTEST_F(UtilsTest, Test_ArrayPolicyUtils_ArrayStringContains, TestSize.Level1) 108 { 109 std::vector<std::string> data; 110 std::string find = TEST_STRING_INDEX_ONE; 111 data = {TEST_STRING_INDEX_ZORE, TEST_STRING_INDEX_ONE, TEST_STRING_INDEX_TWO}; 112 ASSERT_TRUE(ArrayPolicyUtils::ArrayStringContains(data, find)); 113 114 find = TEST_STRING_INDEX_THREE; 115 data = {TEST_STRING_INDEX_ZORE, TEST_STRING_INDEX_ONE, TEST_STRING_INDEX_TWO}; 116 ASSERT_FALSE(ArrayPolicyUtils::ArrayStringContains(data, find)); 117 118 find = TEST_STRING_INDEX_THREE; 119 data = {}; 120 ASSERT_FALSE(ArrayPolicyUtils::ArrayStringContains(data, find)); 121 } 122 123 /** 124 * @tc.name: Test_ArrayPolicyUtils_RemovePolicy_002 125 * @tc.desc: Test ArrayPolicyUtils::RemovePolicy. 126 * @tc.type: FUNC 127 */ 128 HWTEST_F(UtilsTest, Test_ArrayPolicyUtils_RemovePolicy_002, TestSize.Level1) 129 { 130 std::vector<std::map<std::string, std::string>> removeData = { 131 { 132 {"id", "1"}, 133 {"name", "leon"}, 134 }, 135 { 136 {"id", "2"}, 137 {"name", "james"}, 138 }}; 139 std::vector<std::map<std::string, std::string>> data = { 140 { 141 {"id", "3"}, 142 {"name", "fox"}, 143 }, 144 { 145 {"id", "1"}, 146 {"name", "leon"}, 147 }, 148 }; 149 // leon should be remove 150 ArrayPolicyUtils::RemovePolicy(removeData, data); 151 ASSERT_TRUE(data.size() == 1); 152 153 removeData = { 154 { 155 {"id", "1"}, 156 {"name", "leon"}, 157 }, 158 { 159 {"id", "2"}, 160 {"name", "james"}, 161 } 162 }; 163 data = { 164 { 165 {"id", "3"}, 166 {"name", "fox"}, 167 }, 168 { 169 {"id", "4"}, 170 {"name", "leon"}, 171 }, 172 }; 173 ArrayPolicyUtils::RemovePolicy(removeData, data); 174 ASSERT_TRUE(data.size() == 2); 175 } 176 } // namespace TEST 177 } // namespace EDM 178 } // namespace OHOS 179