• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 <memory>
16 
17 #include "gtest/gtest.h"
18 #include "gmock/gmock.h"
19 #include "hilog_tag_wrapper.h"
20 
21 #include "dataobs_mgr_service.h"
22 
23 namespace OHOS {
24 namespace AAFwk {
25 using namespace testing::ext;
26 class DataObsMgrServiceSecondTest : public testing::Test {
27 public:
28     DataObsMgrServiceSecondTest() = default;
29     virtual ~DataObsMgrServiceSecondTest() = default;
30 
31     static void SetUpTestCase(void);
32     static void TearDownTestCase(void);
33     void SetUp();
34     void TearDown();
35 };
SetUpTestCase(void)36 void DataObsMgrServiceSecondTest::SetUpTestCase(void)
37 {}
TearDownTestCase(void)38 void DataObsMgrServiceSecondTest::TearDownTestCase(void)
39 {}
SetUp()40 void DataObsMgrServiceSecondTest::SetUp()
41 {}
TearDown()42 void DataObsMgrServiceSecondTest::TearDown()
43 {}
44 
45 /*
46  * Feature: DataObsMgrService
47  * Function: NotifyChange
48  * SubFunction: NA
49  * FunctionPoints: DataObsMgrService NotifyChange
50  * EnvConditions: NA
51  * CaseDescription: Verify that the DataObsMgrService NotifyChange is normal.
52  */
53 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChange_0100, TestSize.Level1)
54 {
55     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0100 start");
56     const int testVal = static_cast<int>(NO_ERROR);
57     std::shared_ptr<Uri> uri =
58         std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
59     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
60     dataObsMgrServer->Init();
61 
62     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
63     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0100 end");
64 }
65 
66 /*
67  * Feature: DataObsMgrService
68  * Function: NotifyChange
69  * SubFunction: NA
70  * FunctionPoints: DataObsMgrService NotifyChange
71  * EnvConditions: NA
72  * CaseDescription: Verify that the DataObsMgrService NotifyChange is normal.
73  */
74 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChange_0200, TestSize.Level1)
75 {
76     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0200 start");
77     const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
78     std::shared_ptr<Uri> uri =
79         std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
80     auto dataObsMgrServer = std::make_shared<DataObsMgrService>();
81     dataObsMgrServer->Init();
82     auto tmp = dataObsMgrServer->dataObsMgrInner_;
83     dataObsMgrServer->dataObsMgrInner_ = nullptr;
84 
85     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
86     dataObsMgrServer->dataObsMgrInner_ = tmp;
87     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0200 end");
88 }
89 
90 /*
91  * Feature: DataObsMgrService
92  * Function: NotifyChange
93  * SubFunction: NA
94  * FunctionPoints: DataObsMgrService NotifyChange
95  * EnvConditions: NA
96  * CaseDescription: Verify that the DataObsMgrService NotifyChange is normal.
97  */
98 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChange_0300, TestSize.Level1)
99 {
100     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0300 start");
101     const int testVal = static_cast<int>(DATAOBS_SERVICE_TASK_LIMMIT);
102     std::shared_ptr<Uri> uri =
103         std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
104     auto dataObsMgrServer = std::make_shared<DataObsMgrService>();
105     dataObsMgrServer->Init();
106     auto tmp = dataObsMgrServer->taskCount_;
107     dataObsMgrServer->taskCount_ = DataObsMgrService::TASK_COUNT_MAX;
108 
109     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
110     dataObsMgrServer->taskCount_ = tmp;
111     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChange_0300 end");
112 }
113 
114 /*
115  * Feature: DataObsMgrService
116  * Function: DeepCopyChangeInfo
117  * SubFunction: NA
118  * FunctionPoints: DataObsMgrService DeepCopyChangeInfo
119  * EnvConditions: NA
120  * CaseDescription: Verify that the DataObsMgrService DeepCopyChangeInfo is normal.
121  */
122 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0100, TestSize.Level1)
123 {
124     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0100 start");
125     const int testVal = static_cast<int>(SUCCESS);
126     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
127     ChangeInfo src;
128     ChangeInfo dst;
129 
130     EXPECT_EQ(testVal, dataObsMgrServer->DeepCopyChangeInfo(src, dst));
131     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0100 end");
132 }
133 
134 /*
135  * Feature: DataObsMgrService
136  * Function: DeepCopyChangeInfo
137  * SubFunction: NA
138  * FunctionPoints: DataObsMgrService DeepCopyChangeInfo
139  * EnvConditions: NA
140  * CaseDescription: Verify that the DataObsMgrService DeepCopyChangeInfo is normal.
141  */
142 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0200, TestSize.Level1)
143 {
144     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0200 start");
145     const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
146     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
147     ChangeInfo src;
148     ChangeInfo dst;
149     src.size_ = std::numeric_limits<decltype(src.size_)>::max();
150 
151     EXPECT_EQ(testVal, dataObsMgrServer->DeepCopyChangeInfo(src, dst));
152     src.size_ = 0;
153     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0200 end");
154 }
155 
156 /*
157  * Feature: DataObsMgrService
158  * Function: DeepCopyChangeInfo
159  * SubFunction: NA
160  * FunctionPoints: DataObsMgrService DeepCopyChangeInfo
161  * EnvConditions: NA
162  * CaseDescription: Verify that the DataObsMgrService DeepCopyChangeInfo is normal.
163  */
164 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0300, TestSize.Level1)
165 {
166     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0300 start");
167     const int testVal = static_cast<int>(SUCCESS);
168     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
169     ChangeInfo src;
170     src.size_ = 1;
171     src.data_ = new uint8_t[src.size_];
172     ChangeInfo dst;
173 
174     EXPECT_EQ(testVal, dataObsMgrServer->DeepCopyChangeInfo(src, dst));
175     delete [] static_cast<uint8_t *>(src.data_);
176     src.data_ = nullptr;
177     src.size_ = 0;
178     delete [] static_cast<uint8_t *>(dst.data_);
179     dst.data_ = nullptr;
180     dst.size_ = 0;
181     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_DeepCopyChangeInfo_0300 end");
182 }
183 
184 /*
185  * Feature: DataObsMgrService
186  * Function: NotifyChangeExt
187  * SubFunction: NA
188  * FunctionPoints: DataObsMgrService NotifyChangeExt
189  * EnvConditions: NA
190  * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
191  */
192 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChangeExt_0100, TestSize.Level1)
193 {
194     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0100 start");
195     const int testVal = static_cast<int>(SUCCESS);
196     Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
197     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
198     dataObsMgrServer->Init();
199 
200     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
201     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0100 end");
202 }
203 
204 /*
205  * Feature: DataObsMgrService
206  * Function: NotifyChangeExt
207  * SubFunction: NA
208  * FunctionPoints: DataObsMgrService NotifyChangeExt
209  * EnvConditions: NA
210  * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
211  */
212 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChangeExt_0200, TestSize.Level1)
213 {
214     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0200 start");
215     const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
216     Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
217     auto dataObsMgrServer = std::make_shared<DataObsMgrService>();
218     dataObsMgrServer->Init();
219     auto tmp = dataObsMgrServer->dataObsMgrInnerExt_;
220     dataObsMgrServer->dataObsMgrInnerExt_ = nullptr;
221 
222     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
223     dataObsMgrServer->dataObsMgrInnerExt_ = tmp;
224     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0200 end");
225 }
226 
227 /*
228  * Feature: DataObsMgrService
229  * Function: NotifyChangeExt
230  * SubFunction: NA
231  * FunctionPoints: DataObsMgrService NotifyChangeExt
232  * EnvConditions: NA
233  * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
234  */
235 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChangeExt_0300, TestSize.Level1)
236 
237 
238 {
239     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0300 start");
240     const int testVal = static_cast<int>(DATAOBS_SERVICE_TASK_LIMMIT);
241     Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
242     auto dataObsMgrServer = std::make_shared<DataObsMgrService>();
243     dataObsMgrServer->Init();
244     auto tmp = dataObsMgrServer->taskCount_;
245     dataObsMgrServer->taskCount_ = DataObsMgrService::TASK_COUNT_MAX;
246 
247     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
248     dataObsMgrServer->taskCount_ = tmp;
249     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0300 end");
250 }
251 
252 /*
253  * Feature: DataObsMgrService
254  * Function: NotifyChangeExt
255  * SubFunction: NA
256  * FunctionPoints: DataObsMgrService NotifyChangeExt
257  * EnvConditions: NA
258  * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
259  */
260 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyChangeExt_0400, TestSize.Level1)
261 {
262     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0400 start");
263     const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
264     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
265     dataObsMgrServer->Init();
266     ChangeInfo changeInfo;
267     auto tmp = changeInfo.size_;
268     changeInfo.size_ = std::numeric_limits<decltype(changeInfo.size_)>::max();
269 
270     EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt(changeInfo));
271     changeInfo.size_ = tmp;
272     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyChangeExt_0400 end");
273 }
274 
275 /*
276  * Feature: DataObsMgrService
277  * Function: NotifyProcessObserver
278  * SubFunction: NA
279  * FunctionPoints: DataObsMgrService NotifyProcessObserver
280  * EnvConditions: NA
281  * CaseDescription: Verify that the DataObsMgrService NotifyProcessObserver is abnormal.
282  */
283 HWTEST_F(DataObsMgrServiceSecondTest, DataObsMgrServiceSecondTest_NotifyProcessObserver_0100, TestSize.Level1)
284 {
285     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyProcessObserver_0100 start");
286     const int testVal = static_cast<int>(DATAOBS_PROXY_INNER_ERR);
287     auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
288     const std::string key;
289     const sptr<IRemoteObject> observer;
290 
291     EXPECT_EQ(testVal, dataObsMgrServer->NotifyProcessObserver(key, observer));
292     TAG_LOGI(AAFwkTag::TEST, "DataObsMgrServiceSecondTest_NotifyProcessObserver_0100 end");
293 }
294 
295 }  // namespace AAFwk
296 }  // namespace OHOS
297