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 #include <gtest/gtest.h> 16 #include "offline_stream_in_server.h" 17 #include "audio_shared_memory.h" 18 19 using namespace testing::ext; 20 namespace OHOS { 21 namespace AudioStandard { 22 class OfflineStreamInServerUnitTest : public testing::Test { 23 public: 24 static void SetUpTestCase(void); 25 static void TearDownTestCase(void); 26 void SetUp(); 27 void TearDown(); 28 }; 29 30 class AudioSharedMemoryTest : public AudioSharedMemory { 31 public: GetBase()32 uint8_t *GetBase() override { return nullptr; }; GetSize()33 size_t GetSize() override { return 0; }; GetFd()34 int GetFd() override { return 0; }; GetName()35 std::string GetName() override { return "abc"; }; Marshalling(Parcel & parcel) const36 bool Marshalling(Parcel &parcel) const override { return true; }; 37 }; 38 39 /** 40 * @tc.name : Test OfflineStreamInServer::PrepareOfflineEffectChain() 41 * @tc.number: OfflineStreamInServer_001 42 * @tc.desc : Test OfflineStreamInServer interface. 43 */ 44 HWTEST(OfflineStreamInServerUnitTest, OfflineStreamInServer_001, TestSize.Level1) 45 { 46 auto offlineStreamInServer = std::make_shared<OfflineStreamInServer>(); 47 EXPECT_NE(offlineStreamInServer, nullptr); 48 49 std::shared_ptr<AudioSharedMemory> inBuffer = std::make_shared<AudioSharedMemoryTest>(); 50 EXPECT_NE(inBuffer, nullptr); 51 std::shared_ptr<AudioSharedMemory> outBuffer = std::make_shared<AudioSharedMemoryTest>(); 52 EXPECT_NE(outBuffer, nullptr); 53 54 offlineStreamInServer->serverBufferIn_ = nullptr; 55 offlineStreamInServer->serverBufferOut_ = nullptr; 56 57 std::string chainName = "abc"; 58 offlineStreamInServer->CreateOfflineEffectChain(chainName); 59 auto ret = offlineStreamInServer->PrepareOfflineEffectChain(inBuffer, outBuffer); 60 EXPECT_NE(ret, 0); 61 } 62 63 /** 64 * @tc.name : Test OfflineStreamInServer::PrepareOfflineEffectChain() 65 * @tc.number: OfflineStreamInServer_002 66 * @tc.desc : Test OfflineStreamInServer interface. 67 */ 68 HWTEST(OfflineStreamInServerUnitTest, OfflineStreamInServer_002, TestSize.Level1) 69 { 70 auto offlineStreamInServer = std::make_shared<OfflineStreamInServer>(); 71 EXPECT_NE(offlineStreamInServer, nullptr); 72 73 std::shared_ptr<AudioSharedMemory> inBuffer = std::make_shared<AudioSharedMemoryTest>(); 74 EXPECT_NE(inBuffer, nullptr); 75 std::shared_ptr<AudioSharedMemory> outBuffer = std::make_shared<AudioSharedMemoryTest>(); 76 EXPECT_NE(outBuffer, nullptr); 77 78 offlineStreamInServer->serverBufferIn_ = inBuffer; 79 offlineStreamInServer->serverBufferOut_ = nullptr; 80 81 std::string chainName = "abc"; 82 offlineStreamInServer->CreateOfflineEffectChain(chainName); 83 auto ret = offlineStreamInServer->PrepareOfflineEffectChain(inBuffer, outBuffer); 84 EXPECT_NE(ret, 0); 85 } 86 87 /** 88 * @tc.name : Test OfflineStreamInServer::PrepareOfflineEffectChain() 89 * @tc.number: OfflineStreamInServer_003 90 * @tc.desc : Test OfflineStreamInServer interface. 91 */ 92 HWTEST(OfflineStreamInServerUnitTest, OfflineStreamInServer_003, TestSize.Level1) 93 { 94 auto offlineStreamInServer = std::make_shared<OfflineStreamInServer>(); 95 EXPECT_NE(offlineStreamInServer, nullptr); 96 97 std::shared_ptr<AudioSharedMemory> inBuffer = std::make_shared<AudioSharedMemoryTest>(); 98 EXPECT_NE(inBuffer, nullptr); 99 std::shared_ptr<AudioSharedMemory> outBuffer = std::make_shared<AudioSharedMemoryTest>(); 100 EXPECT_NE(outBuffer, nullptr); 101 102 offlineStreamInServer->serverBufferIn_ = inBuffer; 103 offlineStreamInServer->serverBufferOut_ = outBuffer; 104 105 std::string chainName = "abc"; 106 offlineStreamInServer->CreateOfflineEffectChain(chainName); 107 auto ret = offlineStreamInServer->PrepareOfflineEffectChain(inBuffer, outBuffer); 108 EXPECT_EQ(ret, 0); 109 } 110 111 /** 112 * @tc.name : Test OfflineStreamInServer::PrepareOfflineEffectChain() 113 * @tc.number: OfflineStreamInServer_004 114 * @tc.desc : Test OfflineStreamInServer interface. 115 */ 116 HWTEST(OfflineStreamInServerUnitTest, OfflineStreamInServer_004, TestSize.Level1) 117 { 118 auto offlineStreamInServer = std::make_shared<OfflineStreamInServer>(); 119 EXPECT_NE(offlineStreamInServer, nullptr); 120 121 std::shared_ptr<AudioSharedMemory> inBuffer = nullptr; 122 std::shared_ptr<AudioSharedMemory> outBuffer = nullptr; 123 124 auto ret = offlineStreamInServer->PrepareOfflineEffectChain(inBuffer, outBuffer); // effectChain is nullptr 125 EXPECT_NE(ret, 0); 126 } 127 } // namespace AudioStandard 128 } // namespace OHOS