1 /*
2  * Copyright (c) 2022 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 <chrono>
17 #include <gtest/gtest.h>
18 #include <thread>
19 
20 #define private public
21 #define protected public
22 #include "continuation_device_callback_proxy.h"
23 #undef private
24 #undef protected
25 
26 using namespace testing::ext;
27 using namespace testing;
28 using namespace std::chrono;
29 
30 namespace OHOS {
31 namespace AppExecFwk {
32 class ContinuationDeviceCallbackProxyTest : public testing::Test {
33 public:
34     static void SetUpTestCase(void);
35     static void TearDownTestCase(void);
36     void SetUp();
37     void TearDown();
38 };
39 
SetUpTestCase(void)40 void ContinuationDeviceCallbackProxyTest::SetUpTestCase(void)
41 {
42 }
43 
TearDownTestCase(void)44 void ContinuationDeviceCallbackProxyTest::TearDownTestCase(void)
45 {
46 }
47 
SetUp(void)48 void ContinuationDeviceCallbackProxyTest::SetUp(void)
49 {
50 }
51 
TearDown(void)52 void ContinuationDeviceCallbackProxyTest::TearDown(void)
53 {
54 }
55 
56 class MoclCallback : public IContinuationDeviceCallback {
57 public:
MoclCallback()58     MoclCallback() {};
~MoclCallback()59     virtual ~MoclCallback() {};
OnDeviceConnectDone(const std::string & deviceId,const std::string & deviceType)60     virtual void OnDeviceConnectDone(const std::string &deviceId, const std::string &deviceType) {};
OnDeviceDisconnectDone(const std::string & deviceId)61     virtual void OnDeviceDisconnectDone(const std::string &deviceId) {};
62 };
63 
64 /*
65 * @tc.number: AppExecFwk_ContinuationDeviceCallbackProxy_Connect_001
66 * @tc.name: Connect
67 * @tc.desc: Verify function Connect pointer callback normal
68 */
69 HWTEST_F(ContinuationDeviceCallbackProxyTest, AppExecFwk_ContinuationDeviceCallbackProxy_Connect_001, TestSize.Level1)
70 {
71     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Connect_001 start.";
72     std::shared_ptr<MoclCallback> callback = std::make_shared<MoclCallback>();
73     std::shared_ptr<IContinuationDeviceCallback> connectCallback = callback;
74     sptr<ContinuationDeviceCallbackProxy> continuationDeviceCallbackProxy = new (std::nothrow)
75         ContinuationDeviceCallbackProxy(connectCallback);
76     EXPECT_TRUE(continuationDeviceCallbackProxy != nullptr);
77     const std::string deviceId = "7001005458323933328a592135733900";
78     const std::string deviceType = "rk3568";
79     continuationDeviceCallbackProxy->Connect(deviceId, deviceType);
80     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Connect_001 end.";
81 }
82 
83 /*
84 * @tc.number: AppExecFwk_ContinuationDeviceCallbackProxy_Connect_002
85 * @tc.name: Connect
86 * @tc.desc: Verify function Connect pointer callback empty
87 */
88 HWTEST_F(ContinuationDeviceCallbackProxyTest, AppExecFwk_ContinuationDeviceCallbackProxy_Connect_002, TestSize.Level1)
89 {
90     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Connect_002 start.";
91     std::shared_ptr<MoclCallback> callback = nullptr;
92     std::shared_ptr<IContinuationDeviceCallback> connectCallback = callback;
93     sptr<ContinuationDeviceCallbackProxy> continuationDeviceCallbackProxy = new (std::nothrow)
94         ContinuationDeviceCallbackProxy(connectCallback);
95     EXPECT_FALSE(continuationDeviceCallbackProxy == nullptr);
96     const std::string deviceId = "7001005458323933328a592135733900";
97     const std::string deviceType = "rk3568";
98     continuationDeviceCallbackProxy->Connect(deviceId, deviceType);
99     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Connect_002 end.";
100 }
101 
102 /*
103 * @tc.number: AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_001
104 * @tc.name: Disconnect
105 * @tc.desc: Verify function Disconnect pointer callback normal
106 */
107 HWTEST_F(
108     ContinuationDeviceCallbackProxyTest, AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_001, TestSize.Level1)
109 {
110     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_001 start.";
111     std::shared_ptr<MoclCallback> callback = std::make_shared<MoclCallback>();
112     std::shared_ptr<IContinuationDeviceCallback> connectCallback = callback;
113     sptr<ContinuationDeviceCallbackProxy> continuationDeviceCallbackProxy = new (std::nothrow)
114         ContinuationDeviceCallbackProxy(connectCallback);
115     EXPECT_TRUE(continuationDeviceCallbackProxy != nullptr);
116     const std::string deviceId = "7001005458323933328a592135733900";
117     continuationDeviceCallbackProxy->Disconnect(deviceId);
118     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_001 end.";
119 }
120 
121 /*
122 * @tc.number: AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_002
123 * @tc.name: Disconnect
124 * @tc.desc: Verify function Disconnect pointer callback empty
125 */
126 HWTEST_F(
127     ContinuationDeviceCallbackProxyTest, AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_002, TestSize.Level1)
128 {
129     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_002 start.";
130     std::shared_ptr<MoclCallback> callback = nullptr;
131     std::shared_ptr<IContinuationDeviceCallback> connectCallback = callback;
132     sptr<ContinuationDeviceCallbackProxy> continuationDeviceCallbackProxy = new (std::nothrow)
133         ContinuationDeviceCallbackProxy(connectCallback);
134     EXPECT_FALSE(continuationDeviceCallbackProxy == nullptr);
135     const std::string deviceId = "7001005458323933328a592135733900";
136     continuationDeviceCallbackProxy->Disconnect(deviceId);
137     GTEST_LOG_(INFO) << "AppExecFwk_ContinuationDeviceCallbackProxy_Disconnect_002 end.";
138 }
139 } // namespace AppExecFwk
140 } // namespace OHOS