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 <gtest/gtest.h>
16 #include <memory>
17 #define private public
18 #include "mock_data_obs_manager_onchange_callback.h"
19 #include "data_ability_observer_proxy.h"
20
21 using namespace testing::ext;
22 using namespace testing;
23 namespace OHOS {
24 namespace AAFwk {
25 class DataAbilityObserverProxyTest : public testing::Test {
26 public:
27 static void SetUpTestCase(void);
28 static void TearDownTestCase(void);
29 void SetUp();
30 void TearDown();
31 std::shared_ptr<DataAbilityObserverProxy> proxy_ = nullptr;
32 };
33
SetUpTestCase(void)34 void DataAbilityObserverProxyTest::SetUpTestCase(void)
35 {}
TearDownTestCase(void)36 void DataAbilityObserverProxyTest::TearDownTestCase(void)
37 {}
SetUp()38 void DataAbilityObserverProxyTest::SetUp()
39 {}
TearDown()40 void DataAbilityObserverProxyTest::TearDown()
41 {}
42
43 /*
44 * Feature: DataAbilityObserverProxy.
45 * Function: DataObsManagerProxy::OnChange is called.
46 * SubFunction: NA.
47 * FunctionPoints: NA.
48 * EnvConditions: NA.
49 * CaseDescription: NA.
50 */
51 HWTEST_F(DataAbilityObserverProxyTest, DataAbilityObserverProxy_OnChangeInner_001, TestSize.Level1)
52 {
53 // 1.stub define
54 sptr<MockDataObsManagerOnChangeCallBack> mockDataAbilityObserverStub(new MockDataObsManagerOnChangeCallBack());
55
56 // 2.obsver1 define
57 sptr<DataAbilityObserverProxy> proxy(new DataAbilityObserverProxy(mockDataAbilityObserverStub));
58
59 EXPECT_CALL(*mockDataAbilityObserverStub, OnChange()).Times(1);
60
61 if (proxy != nullptr) {
62 proxy->OnChange();
63 }
64 }
65
66 /*
67 * Feature: DataAbilityObserverProxy.
68 * Function: DataObsManagerProxy::OnChangeExt is called.
69 * SubFunction: NA.
70 * FunctionPoints: NA.
71 * EnvConditions: NA.
72 * CaseDescription: NA.
73 */
74 HWTEST_F(DataAbilityObserverProxyTest, DataAbilityObserverProxy_OnChangeExt_001, TestSize.Level1)
75 {
76 // 1.stub define
77 sptr<MockDataObsManagerOnChangeCallBack> mockDataAbilityObserverStub(new MockDataObsManagerOnChangeCallBack());
78
79 // 2.obsver1 define
80 sptr<DataAbilityObserverProxy> proxy(new DataAbilityObserverProxy(mockDataAbilityObserverStub));
81
82 ChangeInfo changeInfo;
83 changeInfo.data_ = new int(0);
84 changeInfo.size_ = sizeof(int);
85
86 EXPECT_CALL(*mockDataAbilityObserverStub, OnChangeExt(testing::_)).Times(1);
87
88 if (proxy != nullptr) {
89 proxy->OnChangeExt(changeInfo);
90 }
91 if (changeInfo.data_ != nullptr)
92 {
93 free(changeInfo.data_);
94 changeInfo.data_ = nullptr;
95 }
96 }
97
98 /*
99 * Feature: DataAbilityObserverProxy.
100 * Function: DataObsManagerProxy::OnChangePreferences is called.
101 * SubFunction: NA.
102 * FunctionPoints: NA.
103 * EnvConditions: NA.
104 * CaseDescription: NA.
105 */
106 HWTEST_F(DataAbilityObserverProxyTest, DataAbilityObserverProxy_OnChangePreferences_001, TestSize.Level1)
107 {
108 // 1.stub define
109 sptr<MockDataObsManagerOnChangeCallBack> mockDataAbilityObserverStub(new MockDataObsManagerOnChangeCallBack());
110
111 // 2.obsver1 define
112 sptr<DataAbilityObserverProxy> proxy(new DataAbilityObserverProxy(mockDataAbilityObserverStub));
113
114 std::string key = "test";
115 EXPECT_CALL(*mockDataAbilityObserverStub, OnChangePreferences(key)).Times(1);
116
117 if (proxy != nullptr) {
118 proxy->OnChangePreferences(key);
119 }
120 }
121 } // namespace AAFwk
122 } // namespace OHOS
123