1 /*
2 * Copyright (c) 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 #include "metadata/store_meta_data_local.h"
16 
17 #include <gtest/gtest.h>
18 
19 using namespace testing::ext;
20 using OHOS::DistributedData::StoreMetaDataLocal;
21 namespace OHOS::Test {
22 class StoreMetaDataLocalTest : public testing::Test {
23 public:
SetUpTestCase(void)24     static void SetUpTestCase(void){};
TearDownTestCase(void)25     static void TearDownTestCase(void){};
SetUp()26     void SetUp(){};
TearDown()27     void TearDown(){};
28 };
29 
30 /**
31 * @tc.name: EqualityOperatorTest And InequalityOperatorTest
32 * @tc.desc: equalityOperator and inequalityOperator
33 * @tc.type: FUNC
34 * @tc.require:
35 * @tc.author: MengYao
36 */
37 HWTEST_F(StoreMetaDataLocalTest, EqualityOperatorTest, TestSize.Level1)
38 {
39     StoreMetaDataLocal metaData1;
40     StoreMetaDataLocal metaData2;
41     StoreMetaDataLocal metaData3;
42 
43     ASSERT_TRUE(metaData1 == metaData2);
44     metaData3.isAutoSync = true;
45     ASSERT_FALSE(metaData1 == metaData3);
46     metaData3.isBackup = true;
47     ASSERT_FALSE(metaData1 == metaData3);
48     ASSERT_TRUE(metaData1 != metaData3);
49     ASSERT_FALSE(metaData1 != metaData2);
50     metaData3.isDirty = true;
51     ASSERT_FALSE(metaData1 == metaData3);
52     metaData3.isEncrypt = true;
53     ASSERT_FALSE(metaData1 == metaData3);
54     metaData3.isPublic = true;
55     ASSERT_FALSE(metaData1 == metaData3);
56 
57     metaData2.isAutoSync = true;
58     ASSERT_FALSE(metaData2 == metaData3);
59     metaData2.isBackup = true;
60     ASSERT_FALSE(metaData2 == metaData3);
61     metaData2.isDirty = true;
62     ASSERT_FALSE(metaData2 == metaData3);
63     metaData2.isEncrypt = true;
64     ASSERT_FALSE(metaData2 == metaData3);
65     metaData2.isPublic = true;
66     ASSERT_TRUE(metaData2 == metaData3);
67 
68     metaData2.isBackup = false;
69     ASSERT_FALSE(metaData2 == metaData3);
70     metaData2.isBackup = true;
71     metaData2.isDirty = false;
72     ASSERT_FALSE(metaData2 == metaData3);
73     metaData2.isBackup = true;
74     metaData2.isEncrypt = false;
75     ASSERT_FALSE(metaData2 == metaData3);
76     metaData2.isBackup = true;
77     metaData2.isPublic = false;
78     ASSERT_FALSE(metaData2 == metaData3);
79 }
80 
81 /**
82 * @tc.name: GetPrefixTest
83 * @tc.desc: getPrefix
84 * @tc.type: FUNC
85 * @tc.require:
86 * @tc.author: MengYao
87 */
88 HWTEST_F(StoreMetaDataLocalTest, GetPrefixTest, TestSize.Level1)
89 {
90     StoreMetaDataLocal metaData;
91     std::string expectedPrefix = "KvStoreMetaDataLocal###field1###field2###";
92     std::initializer_list<std::string> fields{ "field1", "field2" };
93 
94     std::string prefix = metaData.GetPrefix(fields);
95 
96     ASSERT_EQ(prefix, expectedPrefix);
97 }
98 
99 /**
100 * @tc.name: GetPolicy
101 * @tc.desc: test GetPolicy function
102 * @tc.type: FUNC
103 * @tc.require:
104 * @tc.author: SQL
105 */
106 HWTEST_F(StoreMetaDataLocalTest, GetPolicy, TestSize.Level1)
107 {
108     StoreMetaDataLocal metaData;
109     uint32_t type = UINT32_MAX;
110     auto policy = metaData.GetPolicy(type);
111     EXPECT_EQ(policy.type, type);
112     metaData.policies.push_back(policy);
113     EXPECT_TRUE(metaData.HasPolicy(type));
114     EXPECT_FALSE(policy.IsValueEffect());
115     type = 1;
116     policy = metaData.GetPolicy(type);
117     EXPECT_NE(policy.type, type);
118     policy.index = 1;
119     EXPECT_FALSE(metaData.HasPolicy(type));
120     EXPECT_TRUE(policy.IsValueEffect());
121     type = UINT32_MAX;
122     policy = metaData.GetPolicy(type);
123     EXPECT_EQ(policy.type, type);
124 }
125 } // namespace OHOS::Test