1 /*
2  * Copyright (c) 2021-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 CAMERA_NDK_UNITTEST_H
17 #define CAMERA_NDK_UNITTEST_H
18 
19 #include "gtest/gtest.h"
20 #include "camera/camera_manager.h"
21 #include <refbase.h>
22 #include "camera/photo_output.h"
23 
24 #include "image_receiver.h"
25 #include "image_receiver_manager.h"
26 namespace OHOS {
27 namespace CameraStandard {
28 class MockStreamOperator;
29 class MockCameraDevice;
30 class MockHCameraHostManager;
31 class CameraNdkUnitTest : public testing::Test {
32 public:
33     static const int32_t PHOTO_DEFAULT_WIDTH = 1280;
34     static const int32_t PHOTO_DEFAULT_HEIGHT = 960;
35     static const int32_t PREVIEW_DEFAULT_WIDTH = 640;
36     static const int32_t PREVIEW_DEFAULT_HEIGHT = 480;
37     static const int32_t VIDEO_DEFAULT_WIDTH = 640;
38     static const int32_t VIDEO_DEFAULT_HEIGHT = 480;
39 
40     static const int32_t WAIT_TIME_AFTER_CAPTURE = 3;
41     static const int32_t WAIT_TIME_AFTER_START = 2;
42     static const int32_t WAIT_TIME_BEFORE_STOP = 1;
43     static const int32_t CAMERA_NUMBER = 2;
44 
45     Camera_Manager *cameraManager = nullptr;
46     Camera_Device *cameraDevice = nullptr;
47     uint32_t cameraDeviceSize = 0;
48 
49     std::shared_ptr<Media::ImageReceiver> imageReceiver;
50     /* SetUpTestCase:The preset action of the test suite is executed before the first TestCase */
51     static void SetUpTestCase(void);
52 
53     /* TearDownTestCase:The test suite cleanup action is executed after the last TestCase */
54     static void TearDownTestCase(void);
55     /* SetUp:Execute before each test case */
56     void SetUp(void);
57     void ReleaseImageReceiver(void);
58 
59     /* TearDown:Execute after each test case */
60     void TearDown(void);
61     void SessionCommit(Camera_CaptureSession *captureSession);
62     void SessionControlParams(Camera_CaptureSession *captureSession);
63     Camera_PhotoOutput* CreatePhotoOutput(int32_t width = PHOTO_DEFAULT_WIDTH, int32_t height = PHOTO_DEFAULT_HEIGHT);
64     Camera_PreviewOutput* CreatePreviewOutput(int32_t width = PREVIEW_DEFAULT_WIDTH,
65                                               int32_t height = PREVIEW_DEFAULT_HEIGHT);
66     Camera_VideoOutput* CreateVideoOutput(int32_t width = VIDEO_DEFAULT_WIDTH, int32_t height = VIDEO_DEFAULT_HEIGHT);
67 };
68 } // CameraStandard
69 } // OHOS
70 #endif // CAMERA_NDK_UNITTEST_H