1fa7767c5Sopenharmony_ci/* 2fa7767c5Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd. 3fa7767c5Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fa7767c5Sopenharmony_ci * you may not use this file except in compliance with the License. 5fa7767c5Sopenharmony_ci * You may obtain a copy of the License at 6fa7767c5Sopenharmony_ci * 7fa7767c5Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fa7767c5Sopenharmony_ci * 9fa7767c5Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fa7767c5Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fa7767c5Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fa7767c5Sopenharmony_ci * See the License for the specific language governing permissions and 13fa7767c5Sopenharmony_ci * limitations under the License. 14fa7767c5Sopenharmony_ci */ 15fa7767c5Sopenharmony_ci 16fa7767c5Sopenharmony_ci#include <memory> 17fa7767c5Sopenharmony_ci#include <string> 18fa7767c5Sopenharmony_ci#include "gtest/gtest.h" 19fa7767c5Sopenharmony_ci#include "plugin/plugins/ffmpeg_adapter/video_encoder/video_ffmpeg_encoder_plugin.h" 20fa7767c5Sopenharmony_ci 21fa7767c5Sopenharmony_cinamespace OHOS { 22fa7767c5Sopenharmony_cinamespace Media { 23fa7767c5Sopenharmony_cinamespace Test { 24fa7767c5Sopenharmony_ciusing namespace OHOS::Media::Plugin; 25fa7767c5Sopenharmony_ciusing namespace testing::ext; 26fa7767c5Sopenharmony_ci 27fa7767c5Sopenharmony_ciclass TestFFmpegVideoEncoder : public ::testing::Test { 28fa7767c5Sopenharmony_cipublic: 29fa7767c5Sopenharmony_ci std::shared_ptr<Ffmpeg::VideoFfmpegEncoderPlugin> videoFfmpegEncoderPlugin; 30fa7767c5Sopenharmony_ci void SetUp() override 31fa7767c5Sopenharmony_ci { 32fa7767c5Sopenharmony_ci videoFfmpegEncoderPlugin = std::make_shared<Ffmpeg::VideoFfmpegEncoderPlugin>("test"); 33fa7767c5Sopenharmony_ci } 34fa7767c5Sopenharmony_ci 35fa7767c5Sopenharmony_ci void TearDown() override 36fa7767c5Sopenharmony_ci { 37fa7767c5Sopenharmony_ci } 38fa7767c5Sopenharmony_ci}; 39fa7767c5Sopenharmony_ci 40fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_init, TestSize.Level1) 41fa7767c5Sopenharmony_ci{ 42fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->Init(); 43fa7767c5Sopenharmony_ci EXPECT_EQ(Status::ERROR_UNSUPPORTED_FORMAT, status); 44fa7767c5Sopenharmony_ci} 45fa7767c5Sopenharmony_ci 46fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_prepare, TestSize.Level1) 47fa7767c5Sopenharmony_ci{ 48fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->Prepare(); 49fa7767c5Sopenharmony_ci EXPECT_EQ(Status::ERROR_WRONG_STATE, status); 50fa7767c5Sopenharmony_ci} 51fa7767c5Sopenharmony_ci 52fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_reset, TestSize.Level1) 53fa7767c5Sopenharmony_ci{ 54fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->Reset(); 55fa7767c5Sopenharmony_ci EXPECT_EQ(Status::OK, status); 56fa7767c5Sopenharmony_ci} 57fa7767c5Sopenharmony_ci 58fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_start, TestSize.Level1) 59fa7767c5Sopenharmony_ci{ 60fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->Start(); 61fa7767c5Sopenharmony_ci EXPECT_EQ(Status::ERROR_WRONG_STATE, status); 62fa7767c5Sopenharmony_ci} 63fa7767c5Sopenharmony_ci 64fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_set_get_parameter, TestSize.Level1) 65fa7767c5Sopenharmony_ci{ 66fa7767c5Sopenharmony_ci Tag tag = Tag::SECTION_VIDEO_UNIVERSAL_START; 67fa7767c5Sopenharmony_ci ValueType value = 2; 68fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->GetParameter(tag, value); 69fa7767c5Sopenharmony_ci EXPECT_EQ(Status::ERROR_WRONG_STATE, status); 70fa7767c5Sopenharmony_ci status = videoFfmpegEncoderPlugin->SetParameter(tag, value); 71fa7767c5Sopenharmony_ci EXPECT_EQ(Status::OK, status); 72fa7767c5Sopenharmony_ci status = videoFfmpegEncoderPlugin->GetParameter(tag, value); 73fa7767c5Sopenharmony_ci EXPECT_EQ(Status::OK, status); 74fa7767c5Sopenharmony_ci} 75fa7767c5Sopenharmony_ci 76fa7767c5Sopenharmony_ciHWTEST_F(TestFFmpegVideoEncoder, test_deinit_status, TestSize.Level1) 77fa7767c5Sopenharmony_ci{ 78fa7767c5Sopenharmony_ci auto status = videoFfmpegEncoderPlugin->Deinit(); 79fa7767c5Sopenharmony_ci EXPECT_EQ(Status::OK, status); 80fa7767c5Sopenharmony_ci} 81fa7767c5Sopenharmony_ci} // namespace Test 82fa7767c5Sopenharmony_ci} // namespace Media 83fa7767c5Sopenharmony_ci} // namespace OHOS 84