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
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: GetEventHandler
68 * SubFunction: NA
69 * FunctionPoints: DataObsMgrService GetEventHandler
70 * EnvConditions: NA
71 * CaseDescription: Verify that the DataObsMgrService could get eventHandler.
72 */
73 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_GetEventHandler_0100, TestSize.Level1)
74 {
75 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_GetEventHandler_0100 start";
76 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
77
78 const std::shared_ptr<EventHandler> retVal = dataObsMgrServer->GetEventHandler();
79
80 EXPECT_EQ(nullptr, retVal.get());
81
82 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_GetEventHandler_0100 end";
83 }
84
85 /*
86 * Feature: DataObsMgrService
87 * Function: OnStart
88 * SubFunction: NA
89 * FunctionPoints: DataObsMgrService OnStart
90 * EnvConditions: NA
91 * CaseDescription: Verify that the DataObsMgrService OnStart is normal.
92 */
93 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_OnStart_0100, TestSize.Level1)
94 {
95 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStart_0100 start";
96 const DataObsServiceRunningState testValue = DataObsServiceRunningState::STATE_RUNNING;
97 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
98
99 dataObsMgrServer->OnStart();
100 EXPECT_EQ(testValue, dataObsMgrServer->QueryServiceState());
101 EXPECT_NE(nullptr, dataObsMgrServer->GetEventHandler().get());
102
103 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStart_0100 end";
104 }
105
106 /*
107 * Feature: DataObsMgrService
108 * Function: RegisterObserver
109 * SubFunction: NA
110 * FunctionPoints: DataObsMgrService RegisterObserver
111 * EnvConditions: NA
112 * CaseDescription: Verify that the DataObsMgrService RegisterObserver is normal.
113 */
114 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_RegisterObserver_0100, TestSize.Level1)
115 {
116 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0100 start";
117 const int testVal = static_cast<int>(NO_ERROR);
118 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
119 std::shared_ptr<Uri> uri =
120 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
121 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
122
123 EXPECT_CALL(*dataobsAbility, OnChange()).Times(1).WillOnce(testing::Return());
124 EXPECT_EQ(testVal, dataObsMgrServer->RegisterObserver(*uri, dataobsAbility));
125
126 testing::Mock::AllowLeak(dataobsAbility);
127 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_RegisterObserver_0100 end";
128 }
129
130 /*
131 * Feature: DataObsMgrService
132 * Function: UnregisterObserver
133 * SubFunction: NA
134 * FunctionPoints: DataObsMgrService UnregisterObserver
135 * EnvConditions: NA
136 * CaseDescription: Verify that the DataObsMgrService UnregisterObserver is normal.
137 */
138 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100, TestSize.Level1)
139 {
140 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100 start";
141 const int testVal = static_cast<int>(NO_ERROR);
142 const sptr<MockDataAbilityObserverStub> dataobsAbility(new (std::nothrow) MockDataAbilityObserverStub());
143 std::shared_ptr<Uri> uri =
144 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
145 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
146
147 EXPECT_EQ(testVal, dataObsMgrServer->UnregisterObserver(*uri, dataobsAbility));
148
149 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_UnregisterObserver_0100 end";
150 }
151
152 /*
153 * Feature: DataObsMgrService
154 * Function: NotifyChange
155 * SubFunction: NA
156 * FunctionPoints: DataObsMgrService NotifyChange
157 * EnvConditions: NA
158 * CaseDescription: Verify that the DataObsMgrService NotifyChange is normal.
159 */
160 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_NotifyChange_0100, TestSize.Level1)
161 {
162 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0100 start";
163 const int testVal = static_cast<int>(NO_ERROR);
164 std::shared_ptr<Uri> uri =
165 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
166 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
167
168 EXPECT_EQ(testVal, dataObsMgrServer->NotifyChange(*uri));
169
170 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_NotifyChange_0100 end";
171 }
172
173 /*
174 * Feature: DataObsMgrService
175 * Function: OnStop
176 * SubFunction: NA
177 * FunctionPoints: DataObsMgrService OnStop
178 * EnvConditions: NA
179 * CaseDescription: Verify that the DataObsMgrService OnStop is normal.
180 */
181 HWTEST_F(DataObsMgrServiceTest, AaFwk_DataObsMgrServiceTest_OnStop_0100, TestSize.Level1)
182 {
183 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStop_0100 start";
184 const DataObsServiceRunningState testValue = DataObsServiceRunningState::STATE_NOT_START;
185 auto dataObsMgrServer = DelayedSingleton<DataObsMgrService>::GetInstance();
186
187 dataObsMgrServer->OnStop();
188 EXPECT_EQ(testValue, dataObsMgrServer->QueryServiceState());
189 EXPECT_EQ(nullptr, dataObsMgrServer->GetEventHandler().get());
190
191 GTEST_LOG_(INFO) << "AaFwk_DataObsMgrServiceTest_OnStop_0100 end";
192 }
193 } // namespace AAFwk
194 } // namespace OHOS
195