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 }
53 };
54 } // namespace
55
56 class AncoChannelStubExTest : public testing::Test {
57 public:
58 static void SetUpTestCase(void);
59 static void TearDownTestCase();
SetUp()60 void SetUp() {}
TearDown()61 void TearDown() {}
62
63 static inline std::shared_ptr<MessageParcelMock> messageParcelMock_ = nullptr;
64 };
65
SetUpTestCase(void)66 void AncoChannelStubExTest::SetUpTestCase(void)
67 {
68 messageParcelMock_ = std::make_shared<MessageParcelMock>();
69 MessageParcelMock::messageParcel = messageParcelMock_;
70 }
TearDownTestCase()71 void AncoChannelStubExTest::TearDownTestCase()
72 {
73 MessageParcelMock::messageParcel = nullptr;
74 messageParcelMock_ = nullptr;
75 }
76
77 /**
78 * @tc.name: AncoChannelStubExTest_StubSyncPointerEvent
79 * @tc.desc: Test StubSyncPointerEvent
80 * @tc.type: FUNC
81 * @tc.require:
82 */
83 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncPointerEvent, TestSize.Level1)
84 {
85 CALL_TEST_DEBUG;
86 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(false));
87 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
88 ASSERT_NE(ancoChannel, nullptr);
89 MessageParcel data;
90 MessageParcel reply;
91 EXPECT_EQ(ancoChannel->StubSyncPointerEvent(data, reply), RET_ERR);
92 }
93
94 /**
95 * @tc.name: AncoChannelStubExTest_StubSyncPointerEvent_001
96 * @tc.desc: Test StubSyncPointerEvent
97 * @tc.type: FUNC
98 * @tc.require:
99 */
100 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncPointerEvent_001, TestSize.Level1)
101 {
102 CALL_TEST_DEBUG;
103 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(true));
104 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
105 ASSERT_NE(ancoChannel, nullptr);
106 MessageParcel data;
107 MessageParcel reply;
108 EXPECT_NE(ancoChannel->StubSyncPointerEvent(data, reply), RET_ERR);
109 }
110
111 /**
112 * @tc.name: AncoChannelStubExTest_StubSyncKeyEvent
113 * @tc.desc: Test StubSyncKeyEvent
114 * @tc.type: FUNC
115 * @tc.require:
116 */
117 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKeyEvent, TestSize.Level1)
118 {
119 CALL_TEST_DEBUG;
120 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(false));
121 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
122 ASSERT_NE(ancoChannel, nullptr);
123 MessageParcel data;
124 MessageParcel reply;
125 EXPECT_EQ(ancoChannel->StubSyncKeyEvent(data, reply), RET_ERR);
126 }
127
128 /**
129 * @tc.name: AncoChannelStubExTest_StubSyncKeyEvent_001
130 * @tc.desc: Test StubSyncKeyEvent
131 * @tc.type: FUNC
132 * @tc.require:
133 */
134 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKeyEvent_001, TestSize.Level1)
135 {
136 CALL_TEST_DEBUG;
137 EXPECT_CALL(*messageParcelMock_, ReadFromParcel(_)).WillRepeatedly(Return(true));
138 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
139 ASSERT_NE(ancoChannel, nullptr);
140 MessageParcel data;
141 MessageParcel reply;
142 EXPECT_NE(ancoChannel->StubSyncKeyEvent(data, reply), RET_ERR);
143 }
144
145 /**
146 * @tc.name: AncoChannelStubExTest_StubUpdateWindowInfo
147 * @tc.desc: Test StubUpdateWindowInfo
148 * @tc.type: FUNC
149 * @tc.require:
150 */
151 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubUpdateWindowInfo, TestSize.Level1)
152 {
153 CALL_TEST_DEBUG;
154 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
155 ASSERT_NE(ancoChannel, nullptr);
156 MessageParcel data;
157 MessageParcel reply;
158 EXPECT_EQ(ancoChannel->StubUpdateWindowInfo(data, reply), RET_ERR);
159 }
160
161 /**
162 * @tc.name: AncoChannelStubExTest_StubSyncKnuckleStatus
163 * @tc.desc: Test StubSyncKnuckleStatus
164 * @tc.type: FUNC
165 * @tc.require:
166 */
167 HWTEST_F(AncoChannelStubExTest, AncoChannelStubExTest_StubSyncKnuckleStatus, TestSize.Level1)
168 {
169 CALL_TEST_DEBUG;
170 std::shared_ptr<AncoChannelStub> ancoChannel = std::make_shared<AncoChannelTest>();
171 ASSERT_NE(ancoChannel, nullptr);
172 MessageParcel data;
173 MessageParcel reply;
174 EXPECT_EQ(ancoChannel->StubSyncKnuckleStatus(data, reply), RET_ERR);
175 }
176 } // namespace MMI
177 } // namespace OHOS