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