14d949f91Sopenharmony_ci/* 24d949f91Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 34d949f91Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d949f91Sopenharmony_ci * you may not use this file except in compliance with the License. 54d949f91Sopenharmony_ci * You may obtain a copy of the License at 64d949f91Sopenharmony_ci * 74d949f91Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d949f91Sopenharmony_ci * 94d949f91Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d949f91Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d949f91Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d949f91Sopenharmony_ci * See the License for the specific language governing permissions and 134d949f91Sopenharmony_ci * limitations under the License. 144d949f91Sopenharmony_ci */ 154d949f91Sopenharmony_ci 164d949f91Sopenharmony_ci#include "gtest/gtest.h" 174d949f91Sopenharmony_ci 184d949f91Sopenharmony_ci#include "port.h" 194d949f91Sopenharmony_ci#include "filter.h" 204d949f91Sopenharmony_ci 214d949f91Sopenharmony_ciusing namespace testing::ext; 224d949f91Sopenharmony_ci 234d949f91Sopenharmony_cinamespace OHOS { 244d949f91Sopenharmony_cinamespace Media { 254d949f91Sopenharmony_cinamespace Effect { 264d949f91Sopenharmony_cinamespace Test { 274d949f91Sopenharmony_ci 284d949f91Sopenharmony_ciclass TestPort : public testing::Test { 294d949f91Sopenharmony_cipublic: 304d949f91Sopenharmony_ci TestPort() = default; 314d949f91Sopenharmony_ci 324d949f91Sopenharmony_ci ~TestPort() override = default; 334d949f91Sopenharmony_ci static void SetUpTestCase() {} 344d949f91Sopenharmony_ci 354d949f91Sopenharmony_ci static void TearDownTestCase() {} 364d949f91Sopenharmony_ci 374d949f91Sopenharmony_ci void SetUp() override{} 384d949f91Sopenharmony_ci 394d949f91Sopenharmony_ci void TearDown() override{} 404d949f91Sopenharmony_ci}; 414d949f91Sopenharmony_ci 424d949f91Sopenharmony_ciHWTEST_F(TestPort, PullData001, TestSize.Level1) { 434d949f91Sopenharmony_ci InfoTransfer *filterPtr = nullptr; 444d949f91Sopenharmony_ci 454d949f91Sopenharmony_ci InPort inPort(filterPtr); 464d949f91Sopenharmony_ci std::shared_ptr<EffectBuffer> buffer = nullptr; 474d949f91Sopenharmony_ci ErrorCode result = inPort.PullData(buffer); 484d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 494d949f91Sopenharmony_ci 504d949f91Sopenharmony_ci OutPort outPort(filterPtr); 514d949f91Sopenharmony_ci result = outPort.PullData(buffer); 524d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 534d949f91Sopenharmony_ci 544d949f91Sopenharmony_ci EmptyInPort emptyInPort; 554d949f91Sopenharmony_ci result = emptyInPort.PullData(buffer); 564d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 574d949f91Sopenharmony_ci 584d949f91Sopenharmony_ci EmptyOutPort emptyOutPort; 594d949f91Sopenharmony_ci result = emptyOutPort.PullData(buffer); 604d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 614d949f91Sopenharmony_ci 624d949f91Sopenharmony_ci std::shared_ptr<Port> port = nullptr; 634d949f91Sopenharmony_ci result = outPort.Connect(port); 644d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 654d949f91Sopenharmony_ci 664d949f91Sopenharmony_ci result = outPort.Disconnect(); 674d949f91Sopenharmony_ci EXPECT_EQ(result, ErrorCode::SUCCESS); 684d949f91Sopenharmony_ci 694d949f91Sopenharmony_ci result = emptyInPort.Connect(port); 704d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 714d949f91Sopenharmony_ci 724d949f91Sopenharmony_ci result = emptyOutPort.Connect(port); 734d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 744d949f91Sopenharmony_ci 754d949f91Sopenharmony_ci std::vector<WorkMode> modes; 764d949f91Sopenharmony_ci WorkMode outMode; 774d949f91Sopenharmony_ci result = outPort.Activate(modes, outMode); 784d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 794d949f91Sopenharmony_ci 804d949f91Sopenharmony_ci result = emptyInPort.Activate(modes, outMode); 814d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 824d949f91Sopenharmony_ci 834d949f91Sopenharmony_ci result = emptyOutPort.Activate(modes, outMode); 844d949f91Sopenharmony_ci EXPECT_NE(result, ErrorCode::SUCCESS); 854d949f91Sopenharmony_ci 864d949f91Sopenharmony_ci std::shared_ptr<Port> res = outPort.GetPeerPort(); 874d949f91Sopenharmony_ci EXPECT_EQ(res, nullptr); 884d949f91Sopenharmony_ci 894d949f91Sopenharmony_ci res = inPort.GetPeerPort(); 904d949f91Sopenharmony_ci EXPECT_EQ(res, nullptr); 914d949f91Sopenharmony_ci 924d949f91Sopenharmony_ci const std::shared_ptr<Capability> capability; 934d949f91Sopenharmony_ci std::shared_ptr<EffectContext> context; 944d949f91Sopenharmony_ci emptyInPort.Negotiate(capability, context); 954d949f91Sopenharmony_ci 964d949f91Sopenharmony_ci emptyOutPort.Negotiate(capability, context); 974d949f91Sopenharmony_ci 984d949f91Sopenharmony_ci std::string capabilityName = "test"; 994d949f91Sopenharmony_ci const std::shared_ptr<Capability> capabilityShared = std::make_shared<Capability>(capabilityName); 1004d949f91Sopenharmony_ci std::shared_ptr<EffectContext> contextShared = std::make_shared<EffectContext>(); 1014d949f91Sopenharmony_ci emptyOutPort.Negotiate(capabilityShared, contextShared); 1024d949f91Sopenharmony_ci 1034d949f91Sopenharmony_ci emptyInPort.Negotiate(capabilityShared, contextShared); 1044d949f91Sopenharmony_ci} 1054d949f91Sopenharmony_ci} 1064d949f91Sopenharmony_ci} 1074d949f91Sopenharmony_ci} 1084d949f91Sopenharmony_ci}