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