1 /* 2 * Copyright (C) 2025 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 #ifndef AVMETADATA_UNITTEST_H 16 #define AVMETADATA_UNITTEST_H 17 18 #include "gtest/gtest.h" 19 #include <gmock/gmock.h> 20 #include "avsharedmemory_ipc.h" 21 #include "avmetadatahelper_impl.h" 22 #include "sync_fence.h" 23 24 namespace OHOS { 25 namespace Media { 26 class AVMetadataUnittest : public testing::Test { 27 public: 28 public: 29 // SetUpTestCase: Called before all test cases 30 static void SetUpTestCase(void); 31 // TearDownTestCase: Called after all test case 32 static void TearDownTestCase(void); 33 // SetUp: Called before each test cases 34 void SetUp(void); 35 // TearDown: Called after each test cases 36 void TearDown(void); 37 38 std::shared_ptr<AVMetadataHelperImpl> avmetadataPtr_; 39 }; 40 class MockPixelMap : public PixelMap { 41 public: 42 MOCK_METHOD(int32_t, GetWidth, (), (override)); 43 MOCK_METHOD(int32_t, GetHeight, (), (override)); 44 MOCK_METHOD(PixelFormat, GetPixelFormat, (), (override)); 45 MOCK_METHOD(void*, GetFd, (), (const, override)); 46 MOCK_METHOD(AllocatorType, GetAllocatorType, (), (override)); 47 MOCK_METHOD(void, SetImageYUVInfo, (YUVDataInfo &yuvinfo), (override)); 48 MOCK_METHOD(void, scale, (float xAxis, float yAxis), (override)); 49 }; 50 class MockAVBuffer : public AVBuffer { 51 public: 52 MOCK_METHOD(uint64_t, GetUniqueId, (), ()); 53 }; 54 class MockAVMemory : public AVMemory { 55 public: 56 MOCK_METHOD(int32_t, GetSize, (), ()); 57 MOCK_METHOD(sptr<SurfaceBuffer>, GetSurfaceBuffer, (), ()); 58 MOCK_METHOD(uint8_t*, GetAddr, (), ()); 59 }; 60 class MockSurfaceBuffer : public SurfaceBuffer { 61 public: 62 MOCK_METHOD(int32_t, GetWidth, (), (const, override)); 63 MOCK_METHOD(int32_t, GetHeight, (), (const, override)); 64 MOCK_METHOD(int32_t, GetStride, (), (const, override)); 65 MOCK_METHOD(int32_t, GetFormat, (), (const, override)); 66 MOCK_METHOD(uint64_t, GetUsage, (), (const, override)); 67 MOCK_METHOD(uint64_t, GetPhyAddr, (), (const, override)); 68 MOCK_METHOD(int32_t, GetFileDescriptor, (), (const, override)); 69 MOCK_METHOD(uint32_t, GetSize, (), (const, override)); 70 MOCK_METHOD(GraphicColorGamut, GetSurfaceBufferColorGamut, (), (const, override)); 71 MOCK_METHOD(GraphicTransformType, GetSurfaceBufferTransform, (), (const, override)); 72 MOCK_METHOD(int32_t, GetSurfaceBufferWidth, (), (const, override)); 73 MOCK_METHOD(int32_t, GetSurfaceBufferHeight, (), (const, override)); 74 MOCK_METHOD(uint32_t, GetSeqNum, (), (const, override)); 75 MOCK_METHOD(sptr<BufferExtraData>, GetExtraData, (), (const, override)); 76 MOCK_METHOD(GSError, WriteToMessageParcel, (MessageParcel &parcel), (override)); 77 MOCK_METHOD(GSError, ReadFromMessageParcel, (MessageParcel &parcel, std::function<int(MessageParcel &, 78 std::function<int(Parcel &)>readFdDefaultFunc)>readSafeFdFunc), (override)); 79 MOCK_METHOD(void, SetSurfaceBufferColorGamut, (const GraphicColorGamut& colorGamut), (override)); 80 MOCK_METHOD(void, SetSurfaceBufferTransform, (const GraphicTransformType& transform), (override)); 81 MOCK_METHOD(void, SetSurfaceBufferWidth, (int32_t width), (override)); 82 MOCK_METHOD(void, SetSurfaceBufferHeight, (int32_t width), (override)); 83 MOCK_METHOD(void, SetExtraData, (sptr<BufferExtraData> bedata), (override)); 84 MOCK_METHOD(void, SetBufferHandle, (BufferHandle *handle), (override)); 85 MOCK_METHOD(BufferHandle*, GetBufferHandle, (), (const, override)); 86 MOCK_METHOD(void*, GetVirAddr, (), (override)); 87 MOCK_METHOD(GSError, Alloc, (const BufferRequestConfig &config, const sptr<SurfaceBuffer>& previousBuffer), 88 (override)); 89 MOCK_METHOD(GSError, Map, (), (override)); 90 MOCK_METHOD(GSError, Unmap, (), (override)); 91 MOCK_METHOD(GSError, FlushCache, (), (override)); 92 MOCK_METHOD(GSError, InvalidateCache, (), (override)); 93 MOCK_METHOD(GSError, SetMetadata, (uint32_t key, const std::vector<uint8_t>& value, bool enableCache), (override)); 94 MOCK_METHOD(GSError, GetMetadata, (uint32_t key, std::vector<uint8_t>& value), (override)); 95 MOCK_METHOD(GSError, ListMetadataKeys, (std::vector<uint32_t>& keys), (override)); 96 MOCK_METHOD(GSError, EraseMetadataKey, (uint32_t key), (override)); 97 MOCK_METHOD(GSError, GetPlanesInfo, (void **planesInfo), (override)); 98 MOCK_METHOD(void, SetCropMetadata, (const OHOS::Rect& crop), (override)); 99 MOCK_METHOD(bool, GetCropMetadata, (OHOS::Rect& crop), (override)); 100 MOCK_METHOD(OH_NativeBuffer*, SurfaceBufferToNativeBuffer, (), (override)); 101 MOCK_METHOD(BufferRequestConfig, GetBufferRequestConfig, (), (const, override)); 102 MOCK_METHOD(sptr<SyncFence>, GetSyncFence, (), (const, override)); 103 MOCK_METHOD(void, SetAndMergeSyncFence, (const sptr<SyncFence>& syncFence), (override)); 104 }; 105 } 106 } 107 #endif 108