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