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 #include "mock_data_obs_manager_onchange_callback.h"
18 #define private public
19 #include "data_ability_observer_proxy.h"
20 #include "dataobs_mgr_interface.h"
21 #include "string_ex.h"
22
23 using namespace testing::ext;
24 using namespace testing;
25
26 namespace OHOS {
27 namespace AAFwk {
28 class DataAbilityObserverStubTest : public testing::Test {
29 public:
30 static void SetUpTestCase(void);
31 static void TearDownTestCase(void);
32 void SetUp();
33 void TearDown();
34 };
35
SetUpTestCase(void)36 void DataAbilityObserverStubTest::SetUpTestCase(void)
37 {}
TearDownTestCase(void)38 void DataAbilityObserverStubTest::TearDownTestCase(void)
39 {}
SetUp()40 void DataAbilityObserverStubTest::SetUp()
41 {}
TearDown()42 void DataAbilityObserverStubTest::TearDown()
43 {}
44
45 /*
46 * Feature: DataAbilityObserverStub.
47 * Function: DataAbilityObserverStub::UnregisterObserverInner is called.
48 * SubFunction: UnregisterObserverInner.
49 * FunctionPoints: NA.
50 * EnvConditions: NA.
51 * CaseDescription: NA.
52 */
53 HWTEST_F(DataAbilityObserverStubTest, DataAbilityObserverStub_remoteDescriptor_001, TestSize.Level1)
54 {
55 sptr<MockDataObsManagerOnChangeCallBack> mockDataObsManagerOnChangeStub(new MockDataObsManagerOnChangeCallBack());
56
57 MessageParcel data;
58 MessageParcel reply;
59 MessageOption option;
60
61 data.WriteInterfaceToken(Str8ToStr16(std::string("descrip_test")));
62
63 EXPECT_CALL(*mockDataObsManagerOnChangeStub, OnChange()).Times(0);
64 int res = mockDataObsManagerOnChangeStub->OnRemoteRequest(
65 IDataAbilityObserver::DATA_ABILITY_OBSERVER_CHANGE, data, reply, option);
66 EXPECT_EQ(res, ERR_INVALID_STATE);
67 }
68 /*
69 * Feature: DataAbilityObserverStub.
70 * Function: DataAbilityObserverStub::UnregisterObserverInner is called.
71 * SubFunction: UnregisterObserverInner.
72 * FunctionPoints: NA.
73 * EnvConditions: NA.
74 * CaseDescription: NA.
75 */
76 HWTEST_F(DataAbilityObserverStubTest, DataAbilityObserverStub_OnChange_001, TestSize.Level1)
77 {
78 sptr<MockDataObsManagerOnChangeCallBack> mockDataObsManagerOnChangeStub(new MockDataObsManagerOnChangeCallBack());
79
80 MessageParcel data;
81 MessageParcel reply;
82 MessageOption option;
83
84 data.WriteInterfaceToken(DataAbilityObserverProxy::GetDescriptor());
85
86 EXPECT_CALL(*mockDataObsManagerOnChangeStub, OnChange()).Times(1);
87
88 int res = mockDataObsManagerOnChangeStub->OnRemoteRequest(
89 IDataAbilityObserver::DATA_ABILITY_OBSERVER_CHANGE, data, reply, option);
90 EXPECT_EQ(res, ERR_OK);
91 }
92 } // namespace AAFwk
93 } // namespace OHOS
94