119e95205Sopenharmony_ci/* 219e95205Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 419e95205Sopenharmony_ci * you may not use this file except in compliance with the License. 519e95205Sopenharmony_ci * You may obtain a copy of the License at 619e95205Sopenharmony_ci * 719e95205Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 819e95205Sopenharmony_ci * 919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and 1319e95205Sopenharmony_ci * limitations under the License. 1419e95205Sopenharmony_ci */ 1519e95205Sopenharmony_ci#include <gmock/gmock.h> 1619e95205Sopenharmony_ci#include <gtest/gtest.h> 1719e95205Sopenharmony_ci#include "bluetooth_hfp_hf.h" 1819e95205Sopenharmony_ci#include "bluetooth_host.h" 1919e95205Sopenharmony_ci 2019e95205Sopenharmony_ciusing namespace testing; 2119e95205Sopenharmony_ciusing namespace testing::ext; 2219e95205Sopenharmony_ci 2319e95205Sopenharmony_cinamespace OHOS { 2419e95205Sopenharmony_cinamespace Bluetooth { 2519e95205Sopenharmony_ciusing namespace std; 2619e95205Sopenharmony_ci 2719e95205Sopenharmony_ciconstexpr int TIME = 2; 2819e95205Sopenharmony_ci 2919e95205Sopenharmony_ciclass HandsFreeUnitObserverCommon : public HandsFreeUnitObserver { 3019e95205Sopenharmony_cipublic: 3119e95205Sopenharmony_ci HandsFreeUnitObserverCommon() = default; 3219e95205Sopenharmony_ci virtual ~HandsFreeUnitObserverCommon() = default; 3319e95205Sopenharmony_ci 3419e95205Sopenharmony_ci virtual void OnConnectionStateChanged(const BluetoothRemoteDevice &device, int state, int cause) {} 3519e95205Sopenharmony_ci virtual void OnScoStateChanged(const BluetoothRemoteDevice &device, int state) {} 3619e95205Sopenharmony_ci virtual void OnCallChanged(const BluetoothRemoteDevice &device, const HandsFreeUnitCall &call) {} 3719e95205Sopenharmony_ci virtual void OnSignalStrengthChanged(const BluetoothRemoteDevice &device, int signal) {} 3819e95205Sopenharmony_ci virtual void OnRegistrationStatusChanged(const BluetoothRemoteDevice &device, int status) {} 3919e95205Sopenharmony_ci virtual void OnRoamingStatusChanged(const BluetoothRemoteDevice &device, int status) {} 4019e95205Sopenharmony_ci virtual void OnOperatorSelectionChanged(const BluetoothRemoteDevice &device, const std::string &name) {} 4119e95205Sopenharmony_ci virtual void OnSubscriberNumberChanged(const BluetoothRemoteDevice &device, const std::string &number) {} 4219e95205Sopenharmony_ci virtual void OnVoiceRecognitionStatusChanged(const BluetoothRemoteDevice &device, int status) {} 4319e95205Sopenharmony_ci virtual void OnInBandRingToneChanged(const BluetoothRemoteDevice &device, int status) {} 4419e95205Sopenharmony_ci 4519e95205Sopenharmony_ciprivate: 4619e95205Sopenharmony_ci}; 4719e95205Sopenharmony_cistatic std::shared_ptr<HandsFreeUnitObserverCommon> observer_ = 4819e95205Sopenharmony_ci std::make_shared<HandsFreeUnitObserverCommon>(); 4919e95205Sopenharmony_cistatic HandsFreeUnit *profile_; 5019e95205Sopenharmony_cistatic BluetoothHost *host_; 5119e95205Sopenharmony_ciclass HandsFreeUnitTest : public testing::Test { 5219e95205Sopenharmony_cipublic: 5319e95205Sopenharmony_ci HandsFreeUnitTest() 5419e95205Sopenharmony_ci {} 5519e95205Sopenharmony_ci ~HandsFreeUnitTest() 5619e95205Sopenharmony_ci {} 5719e95205Sopenharmony_ci 5819e95205Sopenharmony_ci static void SetUpTestCase(void); 5919e95205Sopenharmony_ci static void TearDownTestCase(void); 6019e95205Sopenharmony_ci void SetUp(); 6119e95205Sopenharmony_ci void TearDown(); 6219e95205Sopenharmony_ci}; 6319e95205Sopenharmony_ci 6419e95205Sopenharmony_ci 6519e95205Sopenharmony_civoid HandsFreeUnitTest::SetUpTestCase(void) 6619e95205Sopenharmony_ci{ 6719e95205Sopenharmony_ci 6819e95205Sopenharmony_ci} 6919e95205Sopenharmony_civoid HandsFreeUnitTest::TearDownTestCase(void) 7019e95205Sopenharmony_ci{ 7119e95205Sopenharmony_ci 7219e95205Sopenharmony_ci} 7319e95205Sopenharmony_civoid HandsFreeUnitTest::SetUp() 7419e95205Sopenharmony_ci{ 7519e95205Sopenharmony_ci host_ = &BluetoothHost::GetDefaultHost(); 7619e95205Sopenharmony_ci host_->EnableBt(); 7719e95205Sopenharmony_ci host_->EnableBle(); 7819e95205Sopenharmony_ci sleep(TIME); 7919e95205Sopenharmony_ci} 8019e95205Sopenharmony_ci 8119e95205Sopenharmony_civoid HandsFreeUnitTest::TearDown() 8219e95205Sopenharmony_ci{ 8319e95205Sopenharmony_ci host_->DisableBt(); 8419e95205Sopenharmony_ci host_->DisableBle(); 8519e95205Sopenharmony_ci host_ = nullptr; 8619e95205Sopenharmony_ci} 8719e95205Sopenharmony_ci 8819e95205Sopenharmony_ci 8919e95205Sopenharmony_ci/* 9019e95205Sopenharmony_ci * @tc.number: HandsFreeUnit001 9119e95205Sopenharmony_ci * @tc.name: GetProfile 9219e95205Sopenharmony_ci * @tc.desc: Get the instance of HandsFreeAudioGateway object. 9319e95205Sopenharmony_ci*/ 9419e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_GetProfile, TestSize.Level1) 9519e95205Sopenharmony_ci{ 9619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetProfile start"; 9719e95205Sopenharmony_ci 9819e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 9919e95205Sopenharmony_ci 10019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetProfile end"; 10119e95205Sopenharmony_ci} 10219e95205Sopenharmony_ci 10319e95205Sopenharmony_ci/* 10419e95205Sopenharmony_ci * @tc.number: HandsFreeUnit002 10519e95205Sopenharmony_ci * @tc.name: ConnectSco 10619e95205Sopenharmony_ci * @tc.desc: Initiate the establishment of an audio connection to remote AG device. 10719e95205Sopenharmony_ci*/ 10819e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_ConnectSco, TestSize.Level1) 10919e95205Sopenharmony_ci{ 11019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_ConnectSco start"; 11119e95205Sopenharmony_ci 11219e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 11319e95205Sopenharmony_ci BluetoothRemoteDevice device; 11419e95205Sopenharmony_ci EXPECT_EQ(profile_->ConnectSco(device), true); 11519e95205Sopenharmony_ci 11619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_ConnectSco end"; 11719e95205Sopenharmony_ci} 11819e95205Sopenharmony_ci 11919e95205Sopenharmony_ci/* 12019e95205Sopenharmony_ci * @tc.number: HandsFreeUnit003 12119e95205Sopenharmony_ci * @tc.name: DisconnectSco 12219e95205Sopenharmony_ci * @tc.desc: Release the audio connection from remote HF device. 12319e95205Sopenharmony_ci*/ 12419e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_DisconnectSco, TestSize.Level1) 12519e95205Sopenharmony_ci{ 12619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_DisconnectSco start"; 12719e95205Sopenharmony_ci 12819e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 12919e95205Sopenharmony_ci BluetoothRemoteDevice device; 13019e95205Sopenharmony_ci EXPECT_EQ(profile_->DisconnectSco(device), true); 13119e95205Sopenharmony_ci 13219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_DisconnectSco end"; 13319e95205Sopenharmony_ci} 13419e95205Sopenharmony_ci 13519e95205Sopenharmony_ci/* 13619e95205Sopenharmony_ci * @tc.number: HandsFreeUnit004 13719e95205Sopenharmony_ci * @tc.name: GetDevicesByStates 13819e95205Sopenharmony_ci * @tc.desc: Get remote AG device list which are in the specified states. 13919e95205Sopenharmony_ci*/ 14019e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_GetDevicesByStates, TestSize.Level1) 14119e95205Sopenharmony_ci{ 14219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetDevicesByStates start"; 14319e95205Sopenharmony_ci 14419e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 14519e95205Sopenharmony_ci BluetoothRemoteDevice device; 14619e95205Sopenharmony_ci vector<int> states = {static_cast<int>(BTConnectState::CONNECTED)}; 14719e95205Sopenharmony_ci vector<BluetoothRemoteDevice> devices = profile_->GetDevicesByStates(states); 14819e95205Sopenharmony_ci 14919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetDevicesByStates end"; 15019e95205Sopenharmony_ci} 15119e95205Sopenharmony_ci 15219e95205Sopenharmony_ci/* 15319e95205Sopenharmony_ci * @tc.number: HandsFreeUnit005 15419e95205Sopenharmony_ci * @tc.name: GetDeviceState 15519e95205Sopenharmony_ci * @tc.desc: Get the connection state of the specified remote AG device. 15619e95205Sopenharmony_ci*/ 15719e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_GetDeviceState, TestSize.Level1) 15819e95205Sopenharmony_ci{ 15919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetDeviceState start"; 16019e95205Sopenharmony_ci 16119e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 16219e95205Sopenharmony_ci BluetoothRemoteDevice device; 16319e95205Sopenharmony_ci EXPECT_EQ(profile_->GetDeviceState(device), 0); 16419e95205Sopenharmony_ci 16519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetDeviceState end"; 16619e95205Sopenharmony_ci} 16719e95205Sopenharmony_ci 16819e95205Sopenharmony_ci/* 16919e95205Sopenharmony_ci * @tc.number: HandsFreeUnit006 17019e95205Sopenharmony_ci * @tc.name: GetScoState 17119e95205Sopenharmony_ci * @tc.desc: Get the Audio connection state of the specified remote AG device. 17219e95205Sopenharmony_ci*/ 17319e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_GetScoState, TestSize.Level1) 17419e95205Sopenharmony_ci{ 17519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetScoState start"; 17619e95205Sopenharmony_ci 17719e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 17819e95205Sopenharmony_ci BluetoothRemoteDevice device; 17919e95205Sopenharmony_ci EXPECT_EQ(profile_->GetScoState(device), 0); 18019e95205Sopenharmony_ci 18119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetScoState end"; 18219e95205Sopenharmony_ci} 18319e95205Sopenharmony_ci 18419e95205Sopenharmony_ci/* 18519e95205Sopenharmony_ci * @tc.number: HandsFreeUnit007 18619e95205Sopenharmony_ci * @tc.name: SendDTMFTone 18719e95205Sopenharmony_ci * @tc.desc: Send DTMF tone code to remote AG device. 18819e95205Sopenharmony_ci*/ 18919e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_SendDTMFTone, TestSize.Level1) 19019e95205Sopenharmony_ci{ 19119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_SendDTMFTone start"; 19219e95205Sopenharmony_ci 19319e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 19419e95205Sopenharmony_ci BluetoothRemoteDevice device; 19519e95205Sopenharmony_ci EXPECT_EQ(profile_->SendDTMFTone(device, 0), true); 19619e95205Sopenharmony_ci 19719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_SendDTMFTone end"; 19819e95205Sopenharmony_ci} 19919e95205Sopenharmony_ci 20019e95205Sopenharmony_ci 20119e95205Sopenharmony_ci/* 20219e95205Sopenharmony_ci * @tc.number: HandsFreeUnit008 20319e95205Sopenharmony_ci * @tc.name: Connect 20419e95205Sopenharmony_ci * @tc.desc: Initiate the establishment of a service level connection to remote AG device. 20519e95205Sopenharmony_ci*/ 20619e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_Connect, TestSize.Level1) 20719e95205Sopenharmony_ci{ 20819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_Connect start"; 20919e95205Sopenharmony_ci 21019e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 21119e95205Sopenharmony_ci BluetoothRemoteDevice device; 21219e95205Sopenharmony_ci EXPECT_EQ(profile_->Connect(device), true); 21319e95205Sopenharmony_ci 21419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_Connect end"; 21519e95205Sopenharmony_ci} 21619e95205Sopenharmony_ci 21719e95205Sopenharmony_ci/* 21819e95205Sopenharmony_ci * @tc.number: HandsFreeUnit009 21919e95205Sopenharmony_ci * @tc.name: Disconnect 22019e95205Sopenharmony_ci * @tc.desc: Release the audio connection from remote AG device. 22119e95205Sopenharmony_ci*/ 22219e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_Disconnect, TestSize.Level1) 22319e95205Sopenharmony_ci{ 22419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_Disconnect start"; 22519e95205Sopenharmony_ci 22619e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 22719e95205Sopenharmony_ci BluetoothRemoteDevice device; 22819e95205Sopenharmony_ci EXPECT_EQ(profile_->Disconnect(device), true); 22919e95205Sopenharmony_ci 23019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_Disconnect end"; 23119e95205Sopenharmony_ci} 23219e95205Sopenharmony_ci 23319e95205Sopenharmony_ci 23419e95205Sopenharmony_ci/* 23519e95205Sopenharmony_ci * @tc.number: HandsFreeUnit010 23619e95205Sopenharmony_ci * @tc.name: OpenVoiceRecognition 23719e95205Sopenharmony_ci * @tc.desc: Open voice recognition. 23819e95205Sopenharmony_ci*/ 23919e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_OpenVoiceRecognition, TestSize.Level1) 24019e95205Sopenharmony_ci{ 24119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_OpenVoiceRecognition start"; 24219e95205Sopenharmony_ci 24319e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 24419e95205Sopenharmony_ci BluetoothRemoteDevice device; 24519e95205Sopenharmony_ci EXPECT_EQ(profile_->OpenVoiceRecognition(device), true); 24619e95205Sopenharmony_ci 24719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_OpenVoiceRecognition end"; 24819e95205Sopenharmony_ci} 24919e95205Sopenharmony_ci 25019e95205Sopenharmony_ci/* 25119e95205Sopenharmony_ci * @tc.number: HandsFreeUnit011 25219e95205Sopenharmony_ci * @tc.name: CloseVoiceRecognition 25319e95205Sopenharmony_ci * @tc.desc: Close voice recognition. 25419e95205Sopenharmony_ci*/ 25519e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_CloseVoiceRecognition, TestSize.Level1) 25619e95205Sopenharmony_ci{ 25719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_CloseVoiceRecognition start"; 25819e95205Sopenharmony_ci 25919e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 26019e95205Sopenharmony_ci BluetoothRemoteDevice device; 26119e95205Sopenharmony_ci EXPECT_EQ(profile_->CloseVoiceRecognition(device), true); 26219e95205Sopenharmony_ci 26319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_CloseVoiceRecognition end"; 26419e95205Sopenharmony_ci} 26519e95205Sopenharmony_ci 26619e95205Sopenharmony_ci/* 26719e95205Sopenharmony_ci * @tc.number: HandsFreeUnit012 26819e95205Sopenharmony_ci * @tc.name: GetExistingCalls 26919e95205Sopenharmony_ci * @tc.desc: Get a list of all existing calls. 27019e95205Sopenharmony_ci*/ 27119e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_GetExistingCalls, TestSize.Level1) 27219e95205Sopenharmony_ci{ 27319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetExistingCalls start"; 27419e95205Sopenharmony_ci 27519e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 27619e95205Sopenharmony_ci BluetoothRemoteDevice device; 27719e95205Sopenharmony_ci vector<HandsFreeUnitCall> calls = profile_->GetExistingCalls(device); 27819e95205Sopenharmony_ci 27919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_GetExistingCalls end"; 28019e95205Sopenharmony_ci} 28119e95205Sopenharmony_ci 28219e95205Sopenharmony_ci/* 28319e95205Sopenharmony_ci * @tc.number: HandsFreeUnit013 28419e95205Sopenharmony_ci * @tc.name: AcceptIncomingCall 28519e95205Sopenharmony_ci * @tc.desc: Accept an incoming call. 28619e95205Sopenharmony_ci*/ 28719e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_AcceptIncomingCall, TestSize.Level1) 28819e95205Sopenharmony_ci{ 28919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_AcceptIncomingCall start"; 29019e95205Sopenharmony_ci 29119e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 29219e95205Sopenharmony_ci BluetoothRemoteDevice device; 29319e95205Sopenharmony_ci EXPECT_EQ(profile_->AcceptIncomingCall(device, 0), true); 29419e95205Sopenharmony_ci 29519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_AcceptIncomingCall end"; 29619e95205Sopenharmony_ci} 29719e95205Sopenharmony_ci 29819e95205Sopenharmony_ci/* 29919e95205Sopenharmony_ci * @tc.number: HandsFreeUnit014 30019e95205Sopenharmony_ci * @tc.name: HoldActiveCall 30119e95205Sopenharmony_ci * @tc.desc: Hold an active call. 30219e95205Sopenharmony_ci*/ 30319e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_HoldActiveCall, TestSize.Level1) 30419e95205Sopenharmony_ci{ 30519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_HoldActiveCall start"; 30619e95205Sopenharmony_ci 30719e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 30819e95205Sopenharmony_ci BluetoothRemoteDevice device; 30919e95205Sopenharmony_ci EXPECT_EQ(profile_->HoldActiveCall(device), true); 31019e95205Sopenharmony_ci 31119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_HoldActiveCall end"; 31219e95205Sopenharmony_ci} 31319e95205Sopenharmony_ci 31419e95205Sopenharmony_ci/* 31519e95205Sopenharmony_ci * @tc.number: HandsFreeUnit015 31619e95205Sopenharmony_ci * @tc.name: RejectIncomingCall 31719e95205Sopenharmony_ci * @tc.desc: Reject an incoming call. 31819e95205Sopenharmony_ci*/ 31919e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_RejectIncomingCall, TestSize.Level1) 32019e95205Sopenharmony_ci{ 32119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_RejectIncomingCall start"; 32219e95205Sopenharmony_ci 32319e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 32419e95205Sopenharmony_ci BluetoothRemoteDevice device; 32519e95205Sopenharmony_ci EXPECT_EQ(profile_->RejectIncomingCall(device), true); 32619e95205Sopenharmony_ci 32719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_RejectIncomingCall end"; 32819e95205Sopenharmony_ci} 32919e95205Sopenharmony_ci 33019e95205Sopenharmony_ci/* 33119e95205Sopenharmony_ci * @tc.number: HandsFreeUnit016 33219e95205Sopenharmony_ci * @tc.name: FinishActiveCall 33319e95205Sopenharmony_ci * @tc.desc: Start dial with specified call number. 33419e95205Sopenharmony_ci*/ 33519e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_FinishActiveCall, TestSize.Level1) 33619e95205Sopenharmony_ci{ 33719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_FinishActiveCall start"; 33819e95205Sopenharmony_ci 33919e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 34019e95205Sopenharmony_ci BluetoothRemoteDevice device; 34119e95205Sopenharmony_ci HandsFreeUnitCall call; 34219e95205Sopenharmony_ci EXPECT_EQ(profile_->FinishActiveCall(device, call), true); 34319e95205Sopenharmony_ci 34419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_FinishActiveCall end"; 34519e95205Sopenharmony_ci} 34619e95205Sopenharmony_ci 34719e95205Sopenharmony_ci/* 34819e95205Sopenharmony_ci * @tc.number: HandsFreeUnit017 34919e95205Sopenharmony_ci * @tc.name: StartDial 35019e95205Sopenharmony_ci * @tc.desc: Start dial with specified call number. 35119e95205Sopenharmony_ci*/ 35219e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_StartDial, TestSize.Level1) 35319e95205Sopenharmony_ci{ 35419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_StartDial start"; 35519e95205Sopenharmony_ci 35619e95205Sopenharmony_ci BluetoothRemoteDevice device; 35719e95205Sopenharmony_ci std::string number = "000"; 35819e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 35919e95205Sopenharmony_ci std::optional<HandsFreeUnitCall> call = profile_->StartDial(device, number); 36019e95205Sopenharmony_ci 36119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_StartDial end"; 36219e95205Sopenharmony_ci} 36319e95205Sopenharmony_ci 36419e95205Sopenharmony_ci/* 36519e95205Sopenharmony_ci * @tc.number: HandsFreeUnit018 36619e95205Sopenharmony_ci * @tc.name: RegisterObserver 36719e95205Sopenharmony_ci * @tc.desc: Register HandsFree Unit observer instance. 36819e95205Sopenharmony_ci*/ 36919e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_RegisterObserver, TestSize.Level1) 37019e95205Sopenharmony_ci{ 37119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_RegisterObserver start"; 37219e95205Sopenharmony_ci 37319e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 37419e95205Sopenharmony_ci profile_->RegisterObserver(observer_); 37519e95205Sopenharmony_ci 37619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_RegisterObserver end"; 37719e95205Sopenharmony_ci} 37819e95205Sopenharmony_ci 37919e95205Sopenharmony_ci/* 38019e95205Sopenharmony_ci * @tc.number: HandsFreeUnit019 38119e95205Sopenharmony_ci * @tc.name: DeregisterObserver 38219e95205Sopenharmony_ci * @tc.desc: Deregister HandsFree Unit observer instance. 38319e95205Sopenharmony_ci*/ 38419e95205Sopenharmony_ciHWTEST_F(HandsFreeUnitTest, HandsFreeUnit_UnitTest_DeregisterObserver, TestSize.Level1) 38519e95205Sopenharmony_ci{ 38619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_DeregisterObserver start"; 38719e95205Sopenharmony_ci 38819e95205Sopenharmony_ci profile_ = HandsFreeUnit::GetProfile(); 38919e95205Sopenharmony_ci profile_->DeregisterObserver(observer_); 39019e95205Sopenharmony_ci 39119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "HandsFreeAudioGateway_UnitTest_DeregisterObserver end"; 39219e95205Sopenharmony_ci} 39319e95205Sopenharmony_ci 39419e95205Sopenharmony_ci} // namespace Bluetooth 39519e95205Sopenharmony_ci} // namespace OHOS