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_obs_mgr_stub.h"
21
22 #include "dataobs_mgr_proxy.h"
23
24 namespace OHOS {
25 namespace AAFwk {
26 using namespace testing::ext;
27 using ::testing::_;
28
29 class DataObsMgrProxyTest : public testing::Test {
30 public:
31 DataObsMgrProxyTest() = default;
32 virtual ~DataObsMgrProxyTest() = default;
33
34 static void SetUpTestCase(void);
35 static void TearDownTestCase(void);
36 void SetUp();
37 void TearDown();
38 };
SetUpTestCase(void)39 void DataObsMgrProxyTest::SetUpTestCase(void)
40 {}
TearDownTestCase(void)41 void DataObsMgrProxyTest::TearDownTestCase(void)
42 {}
SetUp()43 void DataObsMgrProxyTest::SetUp()
44 {}
TearDown()45 void DataObsMgrProxyTest::TearDown()
46 {}
47
48 /*
49 * Feature: DataObsManagerProxy
50 * Function: RegisterObserver
51 * SubFunction: NA
52 * FunctionPoints: DataObsManagerProxy RegisterObserver
53 * EnvConditions: NA
54 * CaseDescription: Verify that the DataObsManagerProxy RegisterObserver is normal.
55 */
56 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_RegisterObserver_0100, TestSize.Level1)
57 {
58 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_RegisterObserver_0100 start";
59 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
60 std::shared_ptr<MockDataObsMgrStub> dataobs = std::make_shared<MockDataObsMgrStub>();
61 std::shared_ptr<Uri> uri =
62 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
63 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
64 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
65 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
66 sptr<AAFwk::IDataAbilityObserver> dataObserver(new (std::nothrow) MockDataAbilityObserverStub());
67
68 int32_t retVal = dataObsManagerProxy->RegisterObserver(*uri, dataObserver);
69 EXPECT_EQ(testVal, retVal);
70
71 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_RegisterObserver_0100 end";
72 }
73
74 /*
75 * Feature: DataObsManagerProxy
76 * Function: UnregisterObserver
77 * SubFunction: NA
78 * FunctionPoints: DataObsManagerProxy UnregisterObserver
79 * EnvConditions: NA
80 * CaseDescription: Verify that the DataObsManagerProxy UnregisterObserver is normal.
81 */
82 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_UnregisterObserver_0100, TestSize.Level1)
83 {
84 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_UnregisterObserver_0100 start";
85 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
86 std::shared_ptr<MockDataObsMgrStub> dataobs = std::make_shared<MockDataObsMgrStub>();
87 std::shared_ptr<Uri> uri =
88 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
89 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
90 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
91 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
92 sptr<AAFwk::IDataAbilityObserver> dataObserver(new (std::nothrow) MockDataAbilityObserverStub());
93
94 int32_t retVal = dataObsManagerProxy->UnregisterObserver(*uri, dataObserver);
95 EXPECT_EQ(testVal, retVal);
96
97 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_UnregisterObserver_0100 end";
98 }
99
100 /*
101 * Feature: DataObsManagerProxy
102 * Function: NotifyChange
103 * SubFunction: NA
104 * FunctionPoints: DataObsManagerProxy NotifyChange
105 * EnvConditions: NA
106 * CaseDescription: Verify that the DataObsManagerProxy NotifyChange is normal.
107 */
108 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_NotifyChange_0100, TestSize.Level1)
109 {
110 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_NotifyChange_0100 start";
111 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
112 std::shared_ptr<Uri> uri =
113 std::make_shared<Uri>("dataability://device_id/com.domainname.dataability.persondata/person/10");
114 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
115 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
116 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
117
118 int32_t retVal = dataObsManagerProxy->NotifyChange(*uri);
119 EXPECT_EQ(testVal, retVal);
120
121 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_NotifyChange_0100 end";
122 }
123
124 /*
125 * Feature: DataObsManagerProxy
126 * Function: RegisterObserverExt
127 * SubFunction: NA
128 * FunctionPoints: DataObsManagerProxy RegisterObserverExt
129 * EnvConditions: NA
130 * CaseDescription: Verify that the DataObsManagerProxy RegisterObserverExt is normal.
131 */
132 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_RegisterObserverExt_0100, TestSize.Level1)
133 {
134 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_RegisterObserverExt_0100 start";
135 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
136 std::shared_ptr<MockDataObsMgrStub> dataobs = std::make_shared<MockDataObsMgrStub>();
137 std::shared_ptr<Uri> uri = std::make_shared<Uri>("datashare://Authority/com.domainname.persondata");
138 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
139 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
140 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
141 sptr<AAFwk::IDataAbilityObserver> dataObserver(new (std::nothrow) MockDataAbilityObserverStub());
142
143 int32_t retVal = dataObsManagerProxy->RegisterObserverExt(*uri, dataObserver, true);
144 EXPECT_EQ(testVal, retVal);
145
146 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_RegisterObserverExt_0100 end";
147 }
148
149 /*
150 * Feature: DataObsManagerProxy
151 * Function: UnregisterObserverExt
152 * SubFunction: NA
153 * FunctionPoints: DataObsManagerProxy UnregisterObserverExt
154 * EnvConditions: NA
155 * CaseDescription: Verify that the DataObsManagerProxy UnregisterObserverExt is normal.
156 */
157 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_UnregisterObserverExt_0100, TestSize.Level1)
158 {
159 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_UnregisterObserverExt_0100 start";
160 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
161 std::shared_ptr<MockDataObsMgrStub> dataobs = std::make_shared<MockDataObsMgrStub>();
162 std::shared_ptr<Uri> uri = std::make_shared<Uri>("datashare://Authority/com.domainname.persondata");
163 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
164 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
165 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
166 sptr<AAFwk::IDataAbilityObserver> dataObserver(new (std::nothrow) MockDataAbilityObserverStub());
167
168 int32_t retVal = dataObsManagerProxy->UnregisterObserverExt(*uri, dataObserver);
169 EXPECT_EQ(testVal, retVal);
170 retVal = dataObsManagerProxy->UnregisterObserverExt(dataObserver);
171 EXPECT_EQ(testVal, retVal);
172
173 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_UnregisterObserverExt_0100 end";
174 }
175
176 /*
177 * Feature: DataObsManagerProxy
178 * Function: NotifyChangeExt
179 * SubFunction: NA
180 * FunctionPoints: DataObsManagerProxy NotifyChangeExt
181 * EnvConditions: NA
182 * CaseDescription: Verify that the DataObsManagerProxy NotifyChangeExt is normal.
183 */
184 HWTEST_F(DataObsMgrProxyTest, DataObsMgrProxyTest_NotifyChangeExt_0100, TestSize.Level1)
185 {
186 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_NotifyChangeExt_0100 start";
187 const int32_t testVal = static_cast<int>(TEST_RETVAL_ONREMOTEREQUEST);
188 std::shared_ptr<Uri> uri = std::make_shared<Uri>("datashare://Authority/com.domainname.persondata");
189 sptr<MockDataObsMgrStub> mockDataobsMgrStub(new (std::nothrow) MockDataObsMgrStub());
190 std::shared_ptr<DataObsManagerProxy> dataObsManagerProxy =
191 std::make_shared<DataObsManagerProxy>(mockDataobsMgrStub);
192
193 int32_t retVal = dataObsManagerProxy->NotifyChangeExt({ ChangeInfo::ChangeType::INSERT, { *uri } });
194 EXPECT_EQ(testVal, retVal);
195
196 GTEST_LOG_(INFO) << "DataObsMgrProxyTest_NotifyChangeExt_0100 end";
197 }
198 } // namespace AAFwk
199 } // namespace OHOS
200