• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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