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