• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef FOUNDATION_ACE_TEST_CORE_PATTERN_SCROLLABLE_MOCK_SCROLLABLE_H
17 #define FOUNDATION_ACE_TEST_CORE_PATTERN_SCROLLABLE_MOCK_SCROLLABLE_H
18 
19 #include "gmock/gmock.h"
20 
21 #include "core/components_ng/pattern/scroll/scroll_edge_effect.h"
22 #include "core/components_ng/pattern/scrollable/scrollable_event_hub.h"
23 #include "core/components_ng/pattern/scrollable/scrollable_pattern.h"
24 
25 namespace OHOS::Ace::NG {
26 // implement interfaces with mock
27 class PartiallyMockedScrollable : public ScrollablePattern {
28     DECLARE_ACE_TYPE(PartiallyMockedScrollable, ScrollablePattern);
29 
30 private:
31     MOCK_METHOD(bool, UpdateCurrentOffset, (float delta, int32_t source), (override));
32     MOCK_METHOD(bool, IsAtTop, (), (const, override));
33     MOCK_METHOD(bool, IsAtBottom, (), (const, override));
34     MOCK_METHOD(void, UpdateScrollBarOffset, (), (override));
35     MOCK_METHOD(bool, IsScrollable, (), (const, override));
36     MOCK_METHOD(OverScrollOffset, GetOverScrollOffset, (double delta), (const, override));
37     MOCK_METHOD(float, GetMainContentSize, (), (const, override));
38     MOCK_METHOD(bool, IsOutOfBoundary, (bool useCurrentDelta), (override));
39 };
40 
41 class FullyMockedScrollable : public PartiallyMockedScrollable {
42     DECLARE_ACE_TYPE(FullyMockedScrollable, PartiallyMockedScrollable);
43 
44 public:
CreateEventHub()45     RefPtr<EventHub> CreateEventHub() override
46     {
47         return MakeRefPtr<ScrollableEventHub>();
48     }
49 
50 private:
51     MOCK_METHOD(bool, HandleScrollVelocity, (float, const RefPtr<NestableScrollContainer>&), (override));
52     MOCK_METHOD(void, OnScrollEndCallback, (), (override));
53     MOCK_METHOD(bool, OutBoundaryCallback, (), (override));
54 };
55 
56 class MockScrollEdgeEffect : public ScrollEdgeEffect {
57     DECLARE_ACE_TYPE(MockScrollEdgeEffect, ScrollEdgeEffect);
58 
59 public:
60     MOCK_METHOD(void, HandleOverScroll, (Axis, float, const SizeF&, bool, bool), (override));
61 };
62 } // namespace OHOS::Ace::NG
63 #endif // FOUNDATION_ACE_TEST_CORE_PATTERN_SCROLLABLE_MOCK_SCROLLABLE_H
64