1 /*
2  * Copyright (c) 2022 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_FRAMEWORKS_CORE_COMPONENTS_NG_TEST_MOCK_ROSEN_MOCK_CANVAS_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_TEST_MOCK_ROSEN_MOCK_CANVAS_H
18 
19 #include "gmock/gmock.h"
20 #include "testing_canvas.h"
21 #include "testing_path.h"
22 #include "testing_point.h"
23 #include "testing_rect.h"
24 
25 namespace OHOS::Ace::Testing {
26 class MockCanvas : public TestingCanvas {
27 public:
28     MockCanvas() = default;
MockCanvas(void * rawCanvas)29     explicit MockCanvas(void* rawCanvas) {}
30     ~MockCanvas() = default;
31 
32     MOCK_METHOD2(DrawLine, void(const TestingPoint& startPt, const TestingPoint& endPt));
33     MOCK_METHOD1(DrawPath, void(const TestingPath& path));
34     MOCK_METHOD3(DrawArc, void(const TestingRect& oval, float startAngle, float sweepAngle));
35     MOCK_METHOD1(DrawRect, void(const TestingRect& rect));
36     MOCK_METHOD3(Rotate, void(float deg, float sx, float sy));
37     MOCK_METHOD1(Rotate, void(float deg));
38     MOCK_METHOD2(Translate, void(float tx, float ty));
39     MOCK_METHOD2(Scale, void(float sx, float sy));
40     MOCK_METHOD3(ClipRoundRectImpl, void(const TestingRoundRect& roundRect, ClipOp op, bool antiAlias));
41     virtual void ClipRoundRect(const TestingRoundRect& roundRect, ClipOp op, bool antiAlias = false)
42     {
43         ClipRoundRectImpl(roundRect, op, antiAlias);
44     }
45     MOCK_METHOD1(AttachPen, TestingCanvas&(const TestingPen& pen));
46     MOCK_METHOD1(AttachBrush, TestingCanvas&(const TestingBrush& brush));
47     MOCK_METHOD0(DetachPen, TestingCanvas&());
48     MOCK_METHOD0(DetachBrush, TestingCanvas&());
49     MOCK_METHOD0(Save, void());
50     MOCK_METHOD0(Restore, void());
51     MOCK_METHOD2(DrawCircle, void(const TestingPoint& centerPt, float radius));
52     MOCK_METHOD1(DrawRoundRect, void(const TestingRoundRect& roundRect));
53     MOCK_METHOD3(DrawBitmap, void(const TestingBitmap& bitmap, const float px, const float py));
54     MOCK_METHOD4(DrawImage,
55                  void(const TestingImage &image, const float px, const float py,
56                       const TestingSamplingOptions &sampling));
57     MOCK_METHOD1(DrawBackground, void(const TestingBrush& brush));
58     MOCK_METHOD3(ClipRect, void(const TestingRect& rect, ClipOp op, bool doAntiAlias));
59     MOCK_METHOD3(ClipPath, void(const TestingPath& rect, ClipOp op, bool doAntiAlias));
60     MOCK_METHOD3(
61         DrawImageRect, void(const TestingImage& image, const TestingRect& dst, const TestingSamplingOptions& sampling));
62     MOCK_METHOD5(DrawImageRect, void(const TestingImage& image, const TestingRect& src, const TestingRect& dst,
63                                     const TestingSamplingOptions& sampling, SrcRectConstraint constraint));
64     MOCK_METHOD1(SaveLayer, void(const TestingSaveLayerOps& saveLayerOps));
65     MOCK_METHOD1(DrawOval, void(const TestingRect& oval));
66 };
67 } // namespace OHOS::Ace::Testing
68 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_TEST_MOCK_ROSEN_MOCK_CANVAS_H
69