1 /*
2 * Copyright (c) 2024 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18
19 #include "anco_channel_stub.h"
20 #include "mock.h"
21 #include "mmi_log.h"
22
23 #undef MMI_LOG_TAG
24 #define MMI_LOG_TAG "AncoChannelStubExTest"
25
26 namespace OHOS {
27 namespace MMI {
28 namespace {
29 using namespace testing::ext;
30 using namespace testing;
31
32 class AncoChannelTest : public AncoChannelStub {
33 public:
34 AncoChannelTest() = default;
35 virtual ~AncoChannelTest() = default;
36
SyncInputEvent(std::shared_ptr<PointerEvent> pointerEvent)37 int32_t SyncInputEvent(std::shared_ptr<PointerEvent> pointerEvent)
38 {
39 return 0;
40 }
SyncInputEvent(std::shared_ptr<KeyEvent> keyEvent)41 int32_t SyncInputEvent(std::shared_ptr<KeyEvent> keyEvent)
42 {
43 return 0;
44 }
UpdateWindowInfo(std::shared_ptr<AncoWindows> windows)45 int32_t UpdateWindowInfo(std::shared_ptr<AncoWindows> windows)
46 {
47 return 0;
48 }
SyncKnuckleStatus(bool isKnuckleEnable)49 int32_t SyncKnuckleStatus(bool isKnuckleEnable)
50 {
51 return 0;
52 }
UpdateOneHandData(const AncoOneHandData & oneHandData)53 int32_t UpdateOneHandData(const AncoOneHandData &oneHandData)
54 {
55 return 0;
56 }
57 };
58 } // namespace
59
60 class AncoChannelStubExTest : public testing::Test {
61 public:
62 static void SetUpTestCase(void);
63 static void TearDownTestCase();
SetUp()64 void SetUp() {}
TearDown()65 void TearDown() {}
66
67 static inline std::shared_ptr<MessageParcelMock> messageParcelMock_ = nullptr;
68 };
69
SetUpTestCase(void)70 void AncoChannelStubExTest::SetUpTestCase(void)
71 {
72 messageParcelMock_ = std::make_shared<MessageParcelMock>();
73 MessageParcelMock::messageParcel = messageParcelMock_;
74 }
TearDownTestCase()75 void AncoChannelStubExTest::TearDownTestCase()
76 {
77 MessageParcelMock::messageParcel = nullptr;
78 messageParcelMock_ = nullptr;
79 }
80
81 /**
82 * @tc.name: AncoChannelStubExTest_StubSyncPointerEvent
83 * @tc.desc: Test StubSyncPointerEvent
84 * @tc.type: FUNC
85 * @tc.require:
86 */
87 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncPointerEvent, TestSize.Level2)
88 {
89 CALL_TEST_DEBUG;
90 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(false));
91 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
92 ASSERT_NE(ancoChannel, nullptr);
93 MessageParcel data;
94 MessageParcel reply;
95 EXPECT_EQ(ancoChannel->StubSyncPointerEvent(data, reply), RET_ERR);
96 }
97
98 /**
99 * @tc.name: AncoChannelStubExTest_StubSyncPointerEvent_001
100 * @tc.desc: Test StubSyncPointerEvent
101 * @tc.type: FUNC
102 * @tc.require:
103 */
104 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncPointerEvent_001, TestSize.Level1)
105 {
106 CALL_TEST_DEBUG;
107 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(true));
108 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
109 ASSERT_NE(ancoChannel, nullptr);
110 MessageParcel data;
111 MessageParcel reply;
112 EXPECT_NE(ancoChannel->StubSyncPointerEvent(data, reply), RET_ERR);
113 }
114
115 /**
116 * @tc.name: AncoChannelStubExTest_StubSyncKeyEvent
117 * @tc.desc: Test StubSyncKeyEvent
118 * @tc.type: FUNC
119 * @tc.require:
120 */
121 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKeyEvent, TestSize.Level1)
122 {
123 CALL_TEST_DEBUG;
124 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(false));
125 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
126 ASSERT_NE(ancoChannel, nullptr);
127 MessageParcel data;
128 MessageParcel reply;
129 EXPECT_EQ(ancoChannel->StubSyncKeyEvent(data, reply), RET_ERR);
130 }
131
132 /**
133 * @tc.name: AncoChannelStubExTest_StubSyncKeyEvent_001
134 * @tc.desc: Test StubSyncKeyEvent
135 * @tc.type: FUNC
136 * @tc.require:
137 */
138 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKeyEvent_001, TestSize.Level2)
139 {
140 CALL_TEST_DEBUG;
141 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(true));
142 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
143 ASSERT_NE(ancoChannel, nullptr);
144 MessageParcel data;
145 MessageParcel reply;
146 EXPECT_NE(ancoChannel->StubSyncKeyEvent(data, reply), RET_ERR);
147 }
148
149 /**
150 * @tc.name: AncoChannelStubExTest_StubUpdateWindowInfo
151 * @tc.desc: Test StubUpdateWindowInfo
152 * @tc.type: FUNC
153 * @tc.require:
154 */
155 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubUpdateWindowInfo, TestSize.Level1)
156 {
157 CALL_TEST_DEBUG;
158 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
159 ASSERT_NE(ancoChannel, nullptr);
160 MessageParcel data;
161 MessageParcel reply;
162 EXPECT_EQ(ancoChannel->StubUpdateWindowInfo(data, reply), RET_ERR);
163 }
164
165 /**
166 * @tc.name: AncoChannelStubExTest_StubSyncKnuckleStatus
167 * @tc.desc: Test StubSyncKnuckleStatus
168 * @tc.type: FUNC
169 * @tc.require:
170 */
171 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKnuckleStatus, TestSize.Level2)
172 {
173 CALL_TEST_DEBUG;
174 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
175 ASSERT_NE(ancoChannel, nullptr);
176 MessageParcel data;
177 MessageParcel reply;
178 EXPECT_EQ(ancoChannel->StubSyncKnuckleStatus(data, reply), RET_ERR);
179 }
180
181 /**
182 * @tc.name: AncoChannelStubExTest_StubUpdateOneHandData
183 * @tc.desc: Test StubUpdateOneHandData
184 * @tc.type: FUNC
185 * @tc.require:
186 */
187 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubUpdateOneHandData, TestSize.Level1)
188 {
189 CALL_TEST_DEBUG;
190 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
191 ASSERT_NE(ancoChannel, nullptr);
192 MessageParcel data;
193 MessageParcel reply;
194 EXPECT_EQ(ancoChannel->StubUpdateOneHandData(data, reply), RET_ERR);
195 }
196 } // namespace MMI
197 } // namespace OHOS