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