1 /*
2 * Copyright (c) 2021 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
20 #include "mock_data_ability_observer_stub.h"
21 #define private public
22 #include "dataobs_mgr_service.h"
23
24 namespace OHOS {
25 namespace AAFwk {
26 using namespace testing::ext;
27 class DataObsMgrServiceTest : public testing::Test {
28 public:
29 DataObsMgrServiceTest() = default;
30 virtual ~DataObsMgrServiceTest() = default;
31
32 static void SetUpTestCase(void);
33 static void TearDownTestCase(void);
34 void SetUp();
35 void TearDown();
36 };
SetUpTestCase(void)37 void DataObsMgrServiceTest::SetUpTestCase(void)
38 {}
TearDownTestCase(void)39 void DataObsMgrServiceTest::TearDownTestCase(void)
40 {}
SetUp()41 void DataObsMgrServiceTest::SetUp()
42 {}
TearDown()43 void DataObsMgrServiceTest::TearDown()
44 {}
45
46 /*
47 * Feature: DataObsMgrService
48 * Function: QueryServiceState
49 * SubFunction: NA
50 * FunctionPoints: DataObsMgrService QueryServiceState
51 * EnvConditions: NA
52 * CaseDescription: Verify that the DataObsMgrService could query service state.
53 */
54 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_QueryServiceState_0100, TestSize.Level1)
55 {
56 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_QueryServiceState_0100 start";
57 const DataObsServiceRunningState testValue = DataObsServiceRunningState::STATE_NOT_START;
58 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
59
60 EXPECT_EQ(testValue, dataObsMgrServer->QueryServiceState());
61
62 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_QueryServiceState_0100 end";
63 }
64
65 /*
66 * Feature: DataObsMgrService
67 * Function: RegisterObserver
68 * SubFunction: NA
69 * FunctionPoints: DataObsMgrService RegisterObserver
70 * EnvConditions: NA
71 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is normal.
72 */
73 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_RegisterObserver_0100, TestSize.Level1)
74 {
75 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0100 start";
76 const int testVal = static_cast<int>(NO_ERROR);
77 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
78 std::shared_ptr<Uri> uri =
79 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
80 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
81
82 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserver(*uri, dataobsAbility));
83
84 testing::Mock::AllowLeak(dataobsAbility);
85 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0100 end";
86 }
87
88 /*
89 * Feature: DataObsMgrService
90 * Function: RegisterObserver
91 * SubFunction: NA
92 * FunctionPoints: DataObsMgrService RegisterObserver
93 * EnvConditions: NA
94 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is abnormal.
95 */
96 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_RegisterObserver_0200, TestSize.Level1)
97 {
98 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0200 start";
99 const int testVal = static_cast<int>(DATA_OBSERVER_IS_NULL);
100 std::shared_ptr<Uri> uri =
101 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
102 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
103
104 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserver(*uri, nullptr));
105
106 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0200 end";
107 }
108
109 /*
110 * Feature: DataObsMgrService
111 * Function: RegisterObserver
112 * SubFunction: NA
113 * FunctionPoints: DataObsMgrService RegisterObserver
114 * EnvConditions: NA
115 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is abnormal.
116 */
117 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_RegisterObserver_0300, TestSize.Level1)
118 {
119 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0300 start";
120 const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
121 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
122 std::shared_ptr<Uri> uri =
123 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
124 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
125
126 dataObsMgrServer->dataObsMgrInner_.reset();
127 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserver(*uri, dataobsAbility));
128 dataObsMgrServer->dataObsMgrInner_ = std::make_shared<DataObsMgrInner>();
129
130 testing::Mock::AllowLeak(dataobsAbility);
131 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0300 end";
132 }
133
134 /*
135 * Feature: DataObsMgrService
136 * Function: UnregisterObserver
137 * SubFunction: NA
138 * FunctionPoints: DataObsMgrService UnregisterObserver
139 * EnvConditions: NA
140 * CaseDescription: Verify that the DataObsMgrService UnregisterObserver is normal.
141 */
142 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100, TestSize.Level1)
143 {
144 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100 start";
145 const int testVal = static_cast<int>(NO_ERROR);
146 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
147 std::shared_ptr<Uri> uri =
148 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
149 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
150
151 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserver(*uri, dataobsAbility));
152 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserver(*uri, dataobsAbility));
153
154 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100 end";
155 }
156
157 /*
158 * Feature: DataObsMgrService
159 * Function: UnregisterObserver
160 * SubFunction: NA
161 * FunctionPoints: DataObsMgrService UnregisterObserver
162 * EnvConditions: NA
163 * CaseDescription: Verify that the DataObsMgrService UnregisterObserver is abnormal.
164 */
165 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_UnregisterObserver_0200, TestSize.Level1)
166 {
167 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0200 start";
168 const int testVal = static_cast<int>(DATA_OBSERVER_IS_NULL);
169 std::shared_ptr<Uri> uri =
170 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
171 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
172
173 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserver(*uri, nullptr));
174
175 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0200 end";
176 }
177
178 /*
179 * Feature: DataObsMgrService
180 * Function: UnregisterObserver
181 * SubFunction: NA
182 * FunctionPoints: DataObsMgrService UnregisterObserver
183 * EnvConditions: NA
184 * CaseDescription: Verify that the DataObsMgrService UnregisterObserver is abnormal.
185 */
186 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_UnregisterObserver_0300, TestSize.Level1)
187 {
188 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0300 start";
189 const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
190 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
191 std::shared_ptr<Uri> uri =
192 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
193 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
194
195 dataObsMgrServer->dataObsMgrInner_.reset();
196 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserver(*uri, dataobsAbility));
197 dataObsMgrServer->dataObsMgrInner_ = std::make_shared<DataObsMgrInner>();
198
199 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0300 end";
200 }
201
202 /*
203 * Feature: DataObsMgrService
204 * Function: NotifyChange
205 * SubFunction: NA
206 * FunctionPoints: DataObsMgrService NotifyChange
207 * EnvConditions: NA
208 * CaseDescription: Verify that the DataObsMgrService NotifyChange is normal.
209 */
210 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_NotifyChange_0100, TestSize.Level1)
211 {
212 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0100 start";
213 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
214 std::shared_ptr<Uri> uri =
215 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
216 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
217
218 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
219
220 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0100 end";
221 }
222
223 /*
224 * Feature: DataObsMgrService
225 * Function: NotifyChange
226 * SubFunction: NA
227 * FunctionPoints: DataObsMgrService NotifyChange
228 * EnvConditions: NA
229 * CaseDescription: Verify that the DataObsMgrService NotifyChange is abnormal.
230 */
231 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_NotifyChange_0200, TestSize.Level1)
232 {
233 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0200 start";
234 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
235 std::shared_ptr<Uri> uri =
236 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
237 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
238
239 dataObsMgrServer->OnStop();
240 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
241
242 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0200 end";
243 }
244
245 /*
246 * Feature: DataObsMgrService
247 * Function: NotifyChange
248 * SubFunction: NA
249 * FunctionPoints: DataObsMgrService NotifyChange
250 * EnvConditions: NA
251 * CaseDescription: Verify that the DataObsMgrService NotifyChange is abnormal.
252 */
253 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_NotifyChange_0300, TestSize.Level1)
254 {
255 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0300 start";
256 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
257 std::shared_ptr<Uri> uri =
258 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
259 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
260
261 dataObsMgrServer->dataObsMgrInner_.reset();
262 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
263 dataObsMgrServer->dataObsMgrInner_ = std::make_shared<DataObsMgrInner>();
264
265 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0300 end";
266 }
267
268 /*
269 * Feature: DataObsMgrService
270 * Function: NotifyChange
271 * SubFunction: NA
272 * FunctionPoints: DataObsMgrService NotifyChange
273 * EnvConditions: NA
274 * CaseDescription: Verify that the DataObsMgrService NotifyChange is abnormal.
275 */
276 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_NotifyChange_0400, TestSize.Level1)
277 {
278 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0400 start";
279 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
280 std::shared_ptr<Uri> uri =
281 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
282 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
283
284 dataObsMgrServer->taskCount_ = 50;
285 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
286 dataObsMgrServer->taskCount_ = 0;
287
288 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0400 end";
289 }
290
291 /*
292 * Feature: DataObsMgrService
293 * Function: RegisterObserverExt
294 * SubFunction: NA
295 * FunctionPoints: DataObsMgrService RegisterObserverExt
296 * EnvConditions: NA
297 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is normal.
298 */
299 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_RegisterObserverExt_0100, TestSize.Level1)
300 {
301 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0100 start";
302 const int testVal = static_cast<int>(NO_ERROR);
303 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
304 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
305 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
306
307 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, dataobsAbility, false));
308 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, dataobsAbility, true));
309
310 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0100 end";
311 }
312
313 /*
314 * Feature: DataObsMgrService
315 * Function: RegisterObserverExt
316 * SubFunction: NA
317 * FunctionPoints: DataObsMgrService RegisterObserverExt
318 * EnvConditions: NA
319 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is abnormal.
320 */
321 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_RegisterObserverExt_0200, TestSize.Level1)
322 {
323 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0200 start";
324 const int testVal = static_cast<int>(DATA_OBSERVER_IS_NULL);
325 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
326 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
327
328 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, nullptr, true));
329
330 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0200 end";
331 }
332
333 /*
334 * Feature: DataObsMgrService
335 * Function: RegisterObserverExt
336 * SubFunction: NA
337 * FunctionPoints: DataObsMgrService RegisterObserverExt
338 * EnvConditions: NA
339 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is abnormal.
340 */
341 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_RegisterObserverExt_0300, TestSize.Level1)
342 {
343 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0300 start";
344 const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
345 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
346 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
347 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
348
349 dataObsMgrServer->dataObsMgrInnerExt_.reset();
350 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, dataobsAbility, true));
351 dataObsMgrServer->dataObsMgrInnerExt_ = std::make_shared<DataObsMgrInnerExt>();
352
353 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_RegisterObserverExt_0300 end";
354 }
355
356 /*
357 * Feature: DataObsMgrService
358 * Function: UnregisterObserverExt
359 * SubFunction: NA
360 * FunctionPoints: DataObsMgrService UnregisterObserverExt
361 * EnvConditions: NA
362 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is normal.
363 */
364 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0100, TestSize.Level1)
365 {
366 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0100 start";
367 const int testVal = static_cast<int>(NO_ERROR);
368 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
369 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
370 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
371
372 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, dataobsAbility, true));
373 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(uri, dataobsAbility));
374
375 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0100 end";
376 }
377
378 /*
379 * Feature: DataObsMgrService
380 * Function: UnregisterObserverExt
381 * SubFunction: NA
382 * FunctionPoints: DataObsMgrService UnregisterObserverExt
383 * EnvConditions: NA
384 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is normal.
385 */
386 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0200, TestSize.Level1)
387 {
388 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0200 start";
389 const int testVal = static_cast<int>(NO_ERROR);
390 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
391 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
392 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
393
394 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserverExt(uri, dataobsAbility, true));
395 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(dataobsAbility));
396
397 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0200 end";
398 }
399
400 /*
401 * Feature: DataObsMgrService
402 * Function: UnregisterObserverExt
403 * SubFunction: NA
404 * FunctionPoints: DataObsMgrService UnregisterObserverExt
405 * EnvConditions: NA
406 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is abnormal.
407 */
408 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0300, TestSize.Level1)
409 {
410 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0300 start";
411 const int testVal = static_cast<int>(DATA_OBSERVER_IS_NULL);
412 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
413 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
414
415 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(uri, nullptr));
416
417 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0300 end";
418 }
419
420 /*
421 * Feature: DataObsMgrService
422 * Function: UnregisterObserverExt
423 * SubFunction: NA
424 * FunctionPoints: DataObsMgrService UnregisterObserverExt
425 * EnvConditions: NA
426 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is abnormal.
427 */
428 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0400, TestSize.Level1)
429 {
430 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0400 start";
431 const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
432 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
433 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
434 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
435
436 dataObsMgrServer->dataObsMgrInnerExt_.reset();
437 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(uri, dataobsAbility));
438 dataObsMgrServer->dataObsMgrInnerExt_ = std::make_shared<DataObsMgrInnerExt>();
439
440 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0400 end";
441 }
442
443 /*
444 * Feature: DataObsMgrService
445 * Function: UnregisterObserverExt
446 * SubFunction: NA
447 * FunctionPoints: DataObsMgrService UnregisterObserverExt
448 * EnvConditions: NA
449 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is abnormal.
450 */
451 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0500, TestSize.Level1)
452 {
453 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0500 start";
454 const int testVal = static_cast<int>(DATA_OBSERVER_IS_NULL);
455 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
456 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
457
458 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(nullptr));
459
460 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0500 end";
461 }
462
463 /*
464 * Feature: DataObsMgrService
465 * Function: UnregisterObserverExt
466 * SubFunction: NA
467 * FunctionPoints: DataObsMgrService UnregisterObserverExt
468 * EnvConditions: NA
469 * CaseDescription: Verify that the DataObsMgrService UnregisterObserverExt is abnormal.
470 */
471 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_UnregisterObserverExt_0600, TestSize.Level1)
472 {
473 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0600 start";
474 const int testVal = static_cast<int>(DATAOBS_SERVICE_INNER_IS_NULL);
475 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
476 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
477 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
478
479 dataObsMgrServer->dataObsMgrInnerExt_.reset();
480 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserverExt(dataobsAbility));
481 dataObsMgrServer->dataObsMgrInnerExt_ = std::make_shared<DataObsMgrInnerExt>();
482
483 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_UnregisterObserverExt_0600 end";
484 }
485
486 /*
487 * Feature: DataObsMgrService
488 * Function: NotifyChangeExt
489 * SubFunction: NA
490 * FunctionPoints: DataObsMgrService NotifyChangeExt
491 * EnvConditions: NA
492 * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is normal.
493 */
494 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_NotifyChangeExt_0100, TestSize.Level1)
495 {
496 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0100 start";
497 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
498 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
499 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
500
501 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
502 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0100 end";
503 }
504
505 /*
506 * Feature: DataObsMgrService
507 * Function: NotifyChangeExt
508 * SubFunction: NA
509 * FunctionPoints: DataObsMgrService NotifyChangeExt
510 * EnvConditions: NA
511 * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
512 */
513 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_NotifyChangeExt_0200, TestSize.Level1)
514 {
515 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0200 start";
516 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
517 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
518 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
519
520 dataObsMgrServer->OnStop();
521 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
522 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0200 end";
523 }
524
525 /*
526 * Feature: DataObsMgrService
527 * Function: NotifyChangeExt
528 * SubFunction: NA
529 * FunctionPoints: DataObsMgrService NotifyChangeExt
530 * EnvConditions: NA
531 * CaseDescription: Verify that the DataObsMgrService NotifyChangeExt is abnormal.
532 */
533 HWTEST_F(DataObsMgrServiceTest, DataObsMgrServiceTest_NotifyChangeExt_0300, TestSize.Level1)
534 {
535 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0300 start";
536 const int testVal = static_cast<int>(DATAOBS_SERVICE_HANDLER_IS_NULL);
537 Uri uri("dataobs://authority/com.domainname.dataability.persondata/ person/10");
538 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
539
540 dataObsMgrServer->dataObsMgrInner_.reset();
541 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChangeExt({ ChangeInfo::ChangeType::UPDATE, { uri } }));
542 dataObsMgrServer->dataObsMgrInner_ = std::make_shared<DataObsMgrInner>();
543 GTEST_LOG_(INFO) << "DataObsMgrServiceTest_NotifyChangeExt_0300 end";
544 }
545
546 /*
547 * Feature: DataObsMgrService
548 * Function: OnStop
549 * SubFunction: NA
550 * FunctionPoints: DataObsMgrService OnStop
551 * EnvConditions: NA
552 * CaseDescription: Verify that the DataObsMgrService OnStop is normal.
553 */
554 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_OnStop_0100, TestSize.Level1)
555 {
556 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStop_0100 start";
557 const DataObsServiceRunningState testValue = DataObsServiceRunningState::STATE_NOT_START;
558 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
559
560 dataObsMgrServer->OnStop();
561 EXPECT_EQ(testValue, dataObsMgrServer->QueryServiceState());
562
563 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStop_0100 end";
564 }
565
566 /*
567 * Feature: DataObsMgrService
568 * Function: Dump
569 * SubFunction: NA
570 * FunctionPoints: DataObsMgrService Dump
571 * EnvConditions: NA
572 * CaseDescription: Verify that the DataObsMgrService Dump is normal.
573 */
574 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_Dump_0100, TestSize.Level1)
575 {
576 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_Dump_0100 start";
577 const DataObsServiceRunningState testValue = DataObsServiceRunningState::STATE_RUNNING;
578 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
579
580 std::string fileName = "test.txt";
581 std::vector<std::u16string> args;
582 args.push_back(u"-h");
583 FILE *fp = fopen(fileName.c_str(), "w");
584 int ret = dataObsMgrServer->Dump(fileno(fp), args);
585 fclose(fp);
586 EXPECT_EQ(SUCCESS, ret);
587
588 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_Dump_0100 end";
589 }
590 } // namespace AAFwk
591 } // namespace OHOS
592