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