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