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 
16 #include <gtest/gtest.h>
17 
18 #include "ability_connect_callback_proxy.h"
19 #include "mock_ability_connect_callback_stub.h"
20 
21 using namespace testing::ext;
22 using namespace testing;
23 namespace OHOS {
24 namespace AAFwk {
25 class AbilityConnectCallBackProxyTest : public testing::Test {
26 public:
27     static void SetUpTestCase(void);
28     static void TearDownTestCase(void);
29     void SetUp();
30     void TearDown();
31 
32     std::shared_ptr<AbilityConnectionProxy> proxy_{ nullptr };
33 };
34 
SetUpTestCase(void)35 void AbilityConnectCallBackProxyTest::SetUpTestCase(void)
36 {}
TearDownTestCase(void)37 void AbilityConnectCallBackProxyTest::TearDownTestCase(void)
38 {}
SetUp()39 void AbilityConnectCallBackProxyTest::SetUp()
40 {}
TearDown()41 void AbilityConnectCallBackProxyTest::TearDown()
42 {}
43 
44 /*
45  * Feature: AAFwk
46  * Function: AbilityConnectionProxy
47  * SubFunction: IPC of client and server
48  * FunctionPoints: OnAbilityConnectDone
49  * EnvConditions: NA
50  * CaseDescription: verify OnAbilityConnectDone IPC between client and server.
51  */
52 HWTEST_F(AbilityConnectCallBackProxyTest, AbilityConnectionCallBack_IPC_001, TestSize.Level1)
53 {
54     sptr<MockAbilityConnectCallback> mockAbilityConnectStub(new MockAbilityConnectCallback());
55     sptr<AbilityConnectionProxy> callback(new AbilityConnectionProxy(mockAbilityConnectStub));
56     AppExecFwk::ElementName element;
57     EXPECT_CALL(*mockAbilityConnectStub, OnAbilityConnectDone(_, _, _))
58         .Times(1)
59         .WillOnce(InvokeWithoutArgs(mockAbilityConnectStub.GetRefPtr(), &MockAbilityConnectCallback::PostVoid));
60     callback->OnAbilityConnectDone(element, mockAbilityConnectStub, 0);
61     mockAbilityConnectStub->Wait();
62 }
63 
64 /*
65  * Feature: AAFwk
66  * Function: AbilityConnectionProxy
67  * SubFunction: IPC of client and server
68  * FunctionPoints: OnAbilityDisconnectDone
69  * EnvConditions: NA
70  * CaseDescription: verify OnAbilityDisconnectDone IPC between client and server.
71  */
72 HWTEST_F(AbilityConnectCallBackProxyTest, AbilityConnectionCallBack_IPC_002, TestSize.Level1)
73 {
74     sptr<MockAbilityConnectCallback> mockAbilityConnectStub(new MockAbilityConnectCallback());
75     sptr<AbilityConnectionProxy> callback(new AbilityConnectionProxy(mockAbilityConnectStub));
76     AppExecFwk::ElementName element;
77     EXPECT_CALL(*mockAbilityConnectStub, OnAbilityDisconnectDone(_, _))
78         .Times(1)
79         .WillOnce(InvokeWithoutArgs(mockAbilityConnectStub.GetRefPtr(), &MockAbilityConnectCallback::PostVoid));
80     callback->OnAbilityDisconnectDone(element, 0);
81     mockAbilityConnectStub->Wait();
82 }
83 
84 /*
85  * Feature: AAFwk
86  * Function: AbilityConnectionProxy
87  * SubFunction: IPC of client and server
88  * FunctionPoints: instance
89  * EnvConditions: NA
90  * CaseDescription: instance is success.
91  */
92 HWTEST_F(AbilityConnectCallBackProxyTest, AbilityConnectionCallBack_IPC_003, TestSize.Level1)
93 {
94     sptr<MockAbilityConnectCallback> mockAbilityConnectStub(new MockAbilityConnectCallback());
95     sptr<AbilityConnectionProxy> callback(new AbilityConnectionProxy(mockAbilityConnectStub));
96     EXPECT_NE(callback, nullptr);
97 }
98 }  // namespace AAFwk
99 }  // namespace OHOS
100