1 /* 2 # Copyright (c) 2025 iSoftStone Information Technology (Group) 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 <string> 17 18 #include "gmock/gmock.h" 19 #include "gtest/gtest.h" 20 21 #define protected public 22 #define private public 23 #include "core/common/resource/pattern_resource_manager.h" 24 #include "core/common/resource/resource_object.h" 25 26 using namespace testing; 27 using namespace testing::ext; 28 29 namespace OHOS::Ace { 30 class PatternResourceManagerTest : public testing::Test {}; 31 32 /** 33 * @tc.name: PatternResourceManagerTest001 34 * @tc.desc: Test PatternResourceManager. 35 * @tc.type: FUNC 36 */ 37 HWTEST_F(PatternResourceManagerTest, PatternResourceManagerTest001, TestSize.Level1) 38 { 39 /** 40 * @tc.steps: step1. AddResource. 41 * @tc.expect: resMap_ size is 3 42 */ 43 auto manager = AceType::MakeRefPtr<PatternResourceManager>(); __anoncd63b17d0102(const RefPtr<ResourceObject>& resObj) 44 auto func = [](const RefPtr<ResourceObject>& resObj) { return; }; 45 RefPtr<ResourceObject> resObj = AceType::MakeRefPtr<ResourceObject>(); 46 manager->AddResource("key1", resObj, func); 47 manager->AddResource("key2", resObj, func); 48 manager->AddResource("key3", resObj, func); 49 EXPECT_EQ(manager->resMap_.size(), 3); 50 51 /** 52 * @tc.steps: step2. RemoveResource witch in map. 53 * @tc.expect: resMap_ size is 2 54 */ 55 manager->RemoveResource("key2"); 56 EXPECT_EQ(manager->resMap_.size(), 2); 57 58 /** 59 * @tc.steps: step3. RemoveResource witch not in map. 60 * @tc.expect: resMap_ size is 2 61 */ 62 manager->RemoveResource("key4"); 63 EXPECT_EQ(manager->resMap_.size(), 2); 64 65 /** 66 * @tc.steps: step4. ReloadResources. 67 * @tc.expect: resKeyArray_ size is 3 68 */ 69 manager->ReloadResources(); 70 manager->resKeyArray_.push_back("key5"); 71 manager->ReloadResources(); 72 EXPECT_EQ(manager->resKeyArray_.size(), 3); 73 } 74 75 /** 76 * @tc.name: PatternResourceManagerTest002 77 * @tc.desc: Test PatternResourceManager. 78 * @tc.type: FUNC 79 */ 80 HWTEST_F(PatternResourceManagerTest, PatternResourceManagerTest002, TestSize.Level1) 81 { 82 /** 83 * @tc.steps: step1. AddResource. 84 * @tc.expect: resMap_ size is 1 85 */ 86 auto manager = AceType::MakeRefPtr<PatternResourceManager>(); __anoncd63b17d0202(const RefPtr<ResourceObject>& resObj) 87 auto func = [](const RefPtr<ResourceObject>& resObj) { return; }; 88 RefPtr<ResourceObject> resObj = AceType::MakeRefPtr<ResourceObject>(); 89 manager->AddResource("key", resObj, func); 90 EXPECT_FALSE(manager->Empty()); 91 } 92 93 /** 94 * @tc.name: PatternResourceManagerTest003 95 * @tc.desc: Test PatternResourceManager. 96 * @tc.type: FUNC 97 */ 98 HWTEST_F(PatternResourceManagerTest, PatternResourceManagerTest003, TestSize.Level1) 99 { 100 /** 101 * @tc.steps: step1. AddResource. 102 * @tc.steps: step2. AddResource as same key. 103 * @tc.expect: resMap_ size is 1 104 */ 105 auto manager = AceType::MakeRefPtr<PatternResourceManager>(); __anoncd63b17d0302(const RefPtr<ResourceObject>& resObj) 106 auto func = [](const RefPtr<ResourceObject>& resObj) { return; }; 107 RefPtr<ResourceObject> resObj = AceType::MakeRefPtr<ResourceObject>(); 108 manager->AddResource("key", resObj, func); 109 manager->AddResource("key", resObj, func); 110 EXPECT_EQ(manager->resKeyArray_.size(), 1); 111 } 112 } // namespace OHOS::Ace 113