119e95205Sopenharmony_ci/*
219e95205Sopenharmony_ci * Copyright (c) 2021-2022 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_a2dp_src.h"
1819e95205Sopenharmony_ci#include "bluetooth_host.h"
1919e95205Sopenharmony_ci#include "bluetooth_errorcode.h"
2019e95205Sopenharmony_ci
2119e95205Sopenharmony_ciusing namespace testing;
2219e95205Sopenharmony_ciusing namespace testing::ext;
2319e95205Sopenharmony_ci
2419e95205Sopenharmony_cinamespace OHOS {
2519e95205Sopenharmony_cinamespace Bluetooth {
2619e95205Sopenharmony_ciusing namespace std;
2719e95205Sopenharmony_ci
2819e95205Sopenharmony_ciconstexpr int TIME = 2;
2919e95205Sopenharmony_ci
3019e95205Sopenharmony_ciclass A2dpSourceObserverCommon : public A2dpSourceObserver {
3119e95205Sopenharmony_cipublic:
3219e95205Sopenharmony_ci    A2dpSourceObserverCommon() = default;
3319e95205Sopenharmony_ci    virtual ~A2dpSourceObserverCommon() = default;
3419e95205Sopenharmony_ci
3519e95205Sopenharmony_ci    virtual void OnConnectionStateChanged(const BluetoothRemoteDevice &device, int state, int cause) {}
3619e95205Sopenharmony_ci    virtual void OnConfigurationChanged(const BluetoothRemoteDevice &device, const A2dpCodecInfo &info, int error){}
3719e95205Sopenharmony_ci    virtual void OnPlayingStatusChanged(const BluetoothRemoteDevice &device, int playingState, int error){}
3819e95205Sopenharmony_ci
3919e95205Sopenharmony_ciprivate:
4019e95205Sopenharmony_ci};
4119e95205Sopenharmony_ci
4219e95205Sopenharmony_ci
4319e95205Sopenharmony_cistatic std::shared_ptr<A2dpSourceObserverCommon> observer_ = std::make_shared<A2dpSourceObserverCommon>();
4419e95205Sopenharmony_cistatic A2dpSource *profile_;
4519e95205Sopenharmony_cistatic BluetoothHost *host_;
4619e95205Sopenharmony_ci
4719e95205Sopenharmony_ciclass A2dpSourceTest : public testing::Test {
4819e95205Sopenharmony_cipublic:
4919e95205Sopenharmony_ci    A2dpSourceTest()
5019e95205Sopenharmony_ci    {}
5119e95205Sopenharmony_ci    ~A2dpSourceTest()
5219e95205Sopenharmony_ci    {}
5319e95205Sopenharmony_ci
5419e95205Sopenharmony_ci    static void SetUpTestCase(void);
5519e95205Sopenharmony_ci    static void TearDownTestCase(void);
5619e95205Sopenharmony_ci    void SetUp();
5719e95205Sopenharmony_ci    void TearDown();
5819e95205Sopenharmony_ci};
5919e95205Sopenharmony_ci
6019e95205Sopenharmony_ci
6119e95205Sopenharmony_civoid A2dpSourceTest::SetUpTestCase(void)
6219e95205Sopenharmony_ci{
6319e95205Sopenharmony_ci
6419e95205Sopenharmony_ci}
6519e95205Sopenharmony_civoid A2dpSourceTest::TearDownTestCase(void)
6619e95205Sopenharmony_ci{
6719e95205Sopenharmony_ci
6819e95205Sopenharmony_ci}
6919e95205Sopenharmony_civoid A2dpSourceTest::SetUp()
7019e95205Sopenharmony_ci{
7119e95205Sopenharmony_ci    host_ = &BluetoothHost::GetDefaultHost();
7219e95205Sopenharmony_ci    host_->EnableBt();
7319e95205Sopenharmony_ci    host_->EnableBle();
7419e95205Sopenharmony_ci    sleep(TIME);
7519e95205Sopenharmony_ci}
7619e95205Sopenharmony_ci
7719e95205Sopenharmony_civoid A2dpSourceTest::TearDown()
7819e95205Sopenharmony_ci{
7919e95205Sopenharmony_ci    host_->DisableBt();
8019e95205Sopenharmony_ci    host_->DisableBle();
8119e95205Sopenharmony_ci    host_ = nullptr;
8219e95205Sopenharmony_ci    sleep(TIME);
8319e95205Sopenharmony_ci}
8419e95205Sopenharmony_ci
8519e95205Sopenharmony_ci/*
8619e95205Sopenharmony_ci * @tc.number: A2dpSource001
8719e95205Sopenharmony_ci * @tc.name: GetProfile
8819e95205Sopenharmony_ci * @tc.desc: Get a2dp sink instance
8919e95205Sopenharmony_ci*/
9019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetProfile, TestSize.Level1)
9119e95205Sopenharmony_ci{
9219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetProfile start";
9319e95205Sopenharmony_ci
9419e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
9519e95205Sopenharmony_ci
9619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetProfile end";
9719e95205Sopenharmony_ci}
9819e95205Sopenharmony_ci
9919e95205Sopenharmony_ci/*
10019e95205Sopenharmony_ci * @tc.number: A2dpSource002
10119e95205Sopenharmony_ci * @tc.name: GetPlayingState
10219e95205Sopenharmony_ci * @tc.desc: Get device playing state by address when peer device is on connected
10319e95205Sopenharmony_ci*/
10419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetPlayingState, TestSize.Level1)
10519e95205Sopenharmony_ci{
10619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetPlayingState start";
10719e95205Sopenharmony_ci
10819e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
10919e95205Sopenharmony_ci    BluetoothRemoteDevice device;
11019e95205Sopenharmony_ci    int state = profile_->GetPlayingState(device);
11119e95205Sopenharmony_ci    EXPECT_EQ(state, BT_SUCCESS);
11219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetPlayingState end";
11319e95205Sopenharmony_ci}
11419e95205Sopenharmony_ci
11519e95205Sopenharmony_ci/*
11619e95205Sopenharmony_ci * @tc.number: A2dpSource003
11719e95205Sopenharmony_ci * @tc.name: RegisterObserver
11819e95205Sopenharmony_ci * @tc.desc: Register callback function of framework
11919e95205Sopenharmony_ci*/
12019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_RegisterObserver, TestSize.Level1)
12119e95205Sopenharmony_ci{
12219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_RegisterObserver start";
12319e95205Sopenharmony_ci
12419e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
12519e95205Sopenharmony_ci    profile_->RegisterObserver(observer_);
12619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_RegisterObserver end";
12719e95205Sopenharmony_ci}
12819e95205Sopenharmony_ci
12919e95205Sopenharmony_ci/*
13019e95205Sopenharmony_ci * @tc.number: A2dpSource004
13119e95205Sopenharmony_ci * @tc.name: DeregisterObserver
13219e95205Sopenharmony_ci * @tc.desc: Deregister callback function of framework
13319e95205Sopenharmony_ci*/
13419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_DeregisterObserver, TestSize.Level1)
13519e95205Sopenharmony_ci{
13619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_DeregisterObserver start";
13719e95205Sopenharmony_ci
13819e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
13919e95205Sopenharmony_ci    profile_->DeregisterObserver(observer_);
14019e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_DeregisterObserver end";
14119e95205Sopenharmony_ci}
14219e95205Sopenharmony_ci
14319e95205Sopenharmony_ci/*
14419e95205Sopenharmony_ci * @tc.number: A2dpSource005
14519e95205Sopenharmony_ci * @tc.name: GetDeviceState
14619e95205Sopenharmony_ci * @tc.desc: Get device connection state by address
14719e95205Sopenharmony_ci*/
14819e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetDeviceState, TestSize.Level1)
14919e95205Sopenharmony_ci{
15019e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDeviceState start";
15119e95205Sopenharmony_ci
15219e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
15319e95205Sopenharmony_ci    BluetoothRemoteDevice device;
15419e95205Sopenharmony_ci    EXPECT_EQ(profile_->GetDeviceState(device), 0);
15519e95205Sopenharmony_ci
15619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDeviceState end";
15719e95205Sopenharmony_ci}
15819e95205Sopenharmony_ci
15919e95205Sopenharmony_ci/*
16019e95205Sopenharmony_ci * @tc.number: A2dpSource006
16119e95205Sopenharmony_ci * @tc.name: GetDevicesByStates
16219e95205Sopenharmony_ci * @tc.desc: Get devices by connection states
16319e95205Sopenharmony_ci*/
16419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetDevicesByStates, TestSize.Level1)
16519e95205Sopenharmony_ci{
16619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDevicesByStates start";
16719e95205Sopenharmony_ci
16819e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
16919e95205Sopenharmony_ci    BluetoothRemoteDevice device;
17019e95205Sopenharmony_ci    vector<int> states = {static_cast<int>(BTConnectState::CONNECTED)};
17119e95205Sopenharmony_ci    vector<BluetoothRemoteDevice> devices = profile_->GetDevicesByStates(states);
17219e95205Sopenharmony_ci
17319e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDevicesByStates end";
17419e95205Sopenharmony_ci}
17519e95205Sopenharmony_ci
17619e95205Sopenharmony_ci/*
17719e95205Sopenharmony_ci * @tc.number: A2dpSource007
17819e95205Sopenharmony_ci * @tc.name: Connect
17919e95205Sopenharmony_ci * @tc.desc: Connect to the peer bluetooth device
18019e95205Sopenharmony_ci*/
18119e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_Connect, TestSize.Level1)
18219e95205Sopenharmony_ci{
18319e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Connect start";
18419e95205Sopenharmony_ci
18519e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
18619e95205Sopenharmony_ci    BluetoothRemoteDevice device;
18719e95205Sopenharmony_ci    int32_t ret = profile_->Connect(device);
18819e95205Sopenharmony_ci    EXPECT_NE(ret, BT_SUCCESS);
18919e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Connect end";
19019e95205Sopenharmony_ci}
19119e95205Sopenharmony_ci
19219e95205Sopenharmony_ci/*
19319e95205Sopenharmony_ci * @tc.number: A2dpSource008
19419e95205Sopenharmony_ci * @tc.name: Disconnect
19519e95205Sopenharmony_ci * @tc.desc: Disconnect with the peer bluetooth service
19619e95205Sopenharmony_ci*/
19719e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_Disconnect, TestSize.Level1)
19819e95205Sopenharmony_ci{
19919e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Disconnect start";
20019e95205Sopenharmony_ci
20119e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
20219e95205Sopenharmony_ci    BluetoothRemoteDevice device;
20319e95205Sopenharmony_ci    int32_t ret = profile_->Disconnect(device);
20419e95205Sopenharmony_ci    EXPECT_NE(ret, BT_SUCCESS);
20519e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Disconnect end";
20619e95205Sopenharmony_ci}
20719e95205Sopenharmony_ci
20819e95205Sopenharmony_ci/*
20919e95205Sopenharmony_ci * @tc.number: A2dpSource009
21019e95205Sopenharmony_ci * @tc.name: SetActiveSinkDevice
21119e95205Sopenharmony_ci * @tc.desc: Set the active sink device for audio connection.
21219e95205Sopenharmony_ci*/
21319e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_SetActiveSinkDevice, TestSize.Level1)
21419e95205Sopenharmony_ci{
21519e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_SetActiveSinkDevice start";
21619e95205Sopenharmony_ci
21719e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
21819e95205Sopenharmony_ci    BluetoothRemoteDevice device;
21919e95205Sopenharmony_ci    EXPECT_EQ(profile_->SetActiveSinkDevice(device), -3);
22019e95205Sopenharmony_ci
22119e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_SetActiveSinkDevice end";
22219e95205Sopenharmony_ci}
22319e95205Sopenharmony_ci
22419e95205Sopenharmony_ci/*
22519e95205Sopenharmony_ci * @tc.number: A2dpSource010
22619e95205Sopenharmony_ci * @tc.name: GetActiveSinkDevice
22719e95205Sopenharmony_ci * @tc.desc: Get the active sink device for audio connection.
22819e95205Sopenharmony_ci*/
22919e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetActiveSinkDevice, TestSize.Level1)
23019e95205Sopenharmony_ci{
23119e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetActiveSinkDevice start";
23219e95205Sopenharmony_ci
23319e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
23419e95205Sopenharmony_ci    BluetoothRemoteDevice device = profile_->GetActiveSinkDevice();
23519e95205Sopenharmony_ci
23619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetActiveSinkDevice end";
23719e95205Sopenharmony_ci}
23819e95205Sopenharmony_ci
23919e95205Sopenharmony_ci/*
24019e95205Sopenharmony_ci * @tc.number: A2dpSource011
24119e95205Sopenharmony_ci * @tc.name: GetConnectStrategy
24219e95205Sopenharmony_ci * @tc.desc: Get connect strategy by address
24319e95205Sopenharmony_ci*/
24419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetConnectStrategy, TestSize.Level1)
24519e95205Sopenharmony_ci{
24619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetConnectStrategy start";
24719e95205Sopenharmony_ci
24819e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
24919e95205Sopenharmony_ci    BluetoothRemoteDevice device;
25019e95205Sopenharmony_ci    EXPECT_EQ(profile_->GetConnectStrategy(device), 0);
25119e95205Sopenharmony_ci
25219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetConnectStrategy end";
25319e95205Sopenharmony_ci}
25419e95205Sopenharmony_ci
25519e95205Sopenharmony_ci/*
25619e95205Sopenharmony_ci * @tc.number: A2dpSource012
25719e95205Sopenharmony_ci * @tc.name: SetConnectStrategy
25819e95205Sopenharmony_ci * @tc.desc: Set connect strategy by address
25919e95205Sopenharmony_ci*/
26019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetConnectStrategy, TestSize.Level1)
26119e95205Sopenharmony_ci{
26219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetConnectStrategy start";
26319e95205Sopenharmony_ci
26419e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
26519e95205Sopenharmony_ci    BluetoothRemoteDevice device;
26619e95205Sopenharmony_ci    bool isOK = profile_->SetConnectStrategy(device,2);
26719e95205Sopenharmony_ci    EXPECT_EQ(isOK, false);
26819e95205Sopenharmony_ci
26919e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetConnectStrategy end";
27019e95205Sopenharmony_ci}
27119e95205Sopenharmony_ci
27219e95205Sopenharmony_ci/*
27319e95205Sopenharmony_ci * @tc.number: A2dpSource013
27419e95205Sopenharmony_ci * @tc.name: GetCodecStatus
27519e95205Sopenharmony_ci * @tc.desc: Get codec status by address
27619e95205Sopenharmony_ci*/
27719e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetCodecStatus, TestSize.Level1)
27819e95205Sopenharmony_ci{
27919e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetCodecStatus start";
28019e95205Sopenharmony_ci
28119e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
28219e95205Sopenharmony_ci    BluetoothRemoteDevice device;
28319e95205Sopenharmony_ci    A2dpCodecStatus ret = profile_->GetCodecStatus(device);
28419e95205Sopenharmony_ci
28519e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetCodecStatus end";
28619e95205Sopenharmony_ci}
28719e95205Sopenharmony_ci
28819e95205Sopenharmony_ci/*
28919e95205Sopenharmony_ci * @tc.number: A2dpSource014
29019e95205Sopenharmony_ci * @tc.name: SetCodecPreference
29119e95205Sopenharmony_ci * @tc.desc: Set codec preference by address
29219e95205Sopenharmony_ci*/
29319e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetCodecPreference, TestSize.Level1)
29419e95205Sopenharmony_ci{
29519e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetCodecPreference start";
29619e95205Sopenharmony_ci
29719e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
29819e95205Sopenharmony_ci    BluetoothRemoteDevice device;
29919e95205Sopenharmony_ci    A2dpCodecInfo info;
30019e95205Sopenharmony_ci    info.codecPriority = 0;
30119e95205Sopenharmony_ci    info.codecType = 1;
30219e95205Sopenharmony_ci    info.sampleRate = 2;
30319e95205Sopenharmony_ci    info.bitsPerSample = 3;
30419e95205Sopenharmony_ci    info.channelMode = 4;
30519e95205Sopenharmony_ci    info.codecSpecific1 = 5;
30619e95205Sopenharmony_ci    info.codecSpecific2 = 6;
30719e95205Sopenharmony_ci    info.codecSpecific3 = 7;
30819e95205Sopenharmony_ci    info.codecSpecific4 = 8;
30919e95205Sopenharmony_ci    EXPECT_EQ(profile_->SetCodecPreference(device, info), 0);
31019e95205Sopenharmony_ci
31119e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetCodecPreference end";
31219e95205Sopenharmony_ci}
31319e95205Sopenharmony_ci
31419e95205Sopenharmony_ci/*
31519e95205Sopenharmony_ci * @tc.number: A2dpSource015
31619e95205Sopenharmony_ci * @tc.name: SwitchOptionalCodecs
31719e95205Sopenharmony_ci * @tc.desc: Switch optional codecs by address
31819e95205Sopenharmony_ci*/
31919e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SwitchOptionalCodecs, TestSize.Level1)
32019e95205Sopenharmony_ci{
32119e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SwitchOptionalCodecs start";
32219e95205Sopenharmony_ci
32319e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
32419e95205Sopenharmony_ci    BluetoothRemoteDevice device;
32519e95205Sopenharmony_ci    bool isEnable = true;
32619e95205Sopenharmony_ci    profile_->SwitchOptionalCodecs(device, isEnable);
32719e95205Sopenharmony_ci
32819e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SwitchOptionalCodecs end";
32919e95205Sopenharmony_ci}
33019e95205Sopenharmony_ci
33119e95205Sopenharmony_ci/*
33219e95205Sopenharmony_ci * @tc.number: A2dpSource016
33319e95205Sopenharmony_ci * @tc.name: GetOptionalCodecsSupportState
33419e95205Sopenharmony_ci * @tc.desc: Get optional codecs support state by address
33519e95205Sopenharmony_ci*/
33619e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState, TestSize.Level1)
33719e95205Sopenharmony_ci{
33819e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState start";
33919e95205Sopenharmony_ci
34019e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
34119e95205Sopenharmony_ci    BluetoothRemoteDevice device;
34219e95205Sopenharmony_ci    EXPECT_EQ(profile_->GetOptionalCodecsSupportState(device), 0);
34319e95205Sopenharmony_ci
34419e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState end";
34519e95205Sopenharmony_ci}
34619e95205Sopenharmony_ci
34719e95205Sopenharmony_ci/*
34819e95205Sopenharmony_ci * @tc.number: A2dpSource017
34919e95205Sopenharmony_ci * @tc.name: StartPlaying
35019e95205Sopenharmony_ci * @tc.desc: Start playing
35119e95205Sopenharmony_ci*/
35219e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_StartPlaying, TestSize.Level1)
35319e95205Sopenharmony_ci{
35419e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StartPlaying start";
35519e95205Sopenharmony_ci
35619e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
35719e95205Sopenharmony_ci    BluetoothRemoteDevice device;
35819e95205Sopenharmony_ci    EXPECT_EQ(profile_->StartPlaying(device), 0);
35919e95205Sopenharmony_ci
36019e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StartPlaying end";
36119e95205Sopenharmony_ci}
36219e95205Sopenharmony_ci
36319e95205Sopenharmony_ci/*
36419e95205Sopenharmony_ci * @tc.number: A2dpSource018
36519e95205Sopenharmony_ci * @tc.name: SuspendPlaying
36619e95205Sopenharmony_ci * @tc.desc: Suspend playing
36719e95205Sopenharmony_ci*/
36819e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SuspendPlaying, TestSize.Level1)
36919e95205Sopenharmony_ci{
37019e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SuspendPlaying start";
37119e95205Sopenharmony_ci
37219e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
37319e95205Sopenharmony_ci    BluetoothRemoteDevice device;
37419e95205Sopenharmony_ci    EXPECT_EQ(profile_->SuspendPlaying(device), 0);
37519e95205Sopenharmony_ci
37619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SuspendPlaying end";
37719e95205Sopenharmony_ci}
37819e95205Sopenharmony_ci
37919e95205Sopenharmony_ci/*
38019e95205Sopenharmony_ci * @tc.number: A2dpSource019
38119e95205Sopenharmony_ci * @tc.name: StopPlaying
38219e95205Sopenharmony_ci * @tc.desc: Stop playing
38319e95205Sopenharmony_ci*/
38419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_StopPlaying, TestSize.Level1)
38519e95205Sopenharmony_ci{
38619e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StopPlaying start";
38719e95205Sopenharmony_ci
38819e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
38919e95205Sopenharmony_ci    BluetoothRemoteDevice device;
39019e95205Sopenharmony_ci    EXPECT_EQ(profile_->StopPlaying(device), 0);
39119e95205Sopenharmony_ci
39219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StopPlaying end";
39319e95205Sopenharmony_ci}
39419e95205Sopenharmony_ci
39519e95205Sopenharmony_ci/*
39619e95205Sopenharmony_ci * @tc.number: A2dpSource020
39719e95205Sopenharmony_ci * @tc.name: SetAudioConfigure
39819e95205Sopenharmony_ci * @tc.desc: Set audio configure
39919e95205Sopenharmony_ci*/
40019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetAudioConfigure, TestSize.Level1)
40119e95205Sopenharmony_ci{
40219e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetAudioConfigure start";
40319e95205Sopenharmony_ci
40419e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
40519e95205Sopenharmony_ci    BluetoothRemoteDevice device;
40619e95205Sopenharmony_ci    profile_->SetAudioConfigure(device, 1, 2, 3);
40719e95205Sopenharmony_ci
40819e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetAudioConfigure end";
40919e95205Sopenharmony_ci}
41019e95205Sopenharmony_ci
41119e95205Sopenharmony_ci/*
41219e95205Sopenharmony_ci * @tc.number: A2dpSource021
41319e95205Sopenharmony_ci * @tc.name: WriteFrame
41419e95205Sopenharmony_ci * @tc.desc: Write frame data to a2dp
41519e95205Sopenharmony_ci*/
41619e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_WriteFrame, TestSize.Level1)
41719e95205Sopenharmony_ci{
41819e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_WriteFrame start";
41919e95205Sopenharmony_ci
42019e95205Sopenharmony_ci    uint8_t str[4] = {'1', '2', '3', '4'};
42119e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
42219e95205Sopenharmony_ci    profile_->WriteFrame(str, 4);
42319e95205Sopenharmony_ci
42419e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_WriteFrame end";
42519e95205Sopenharmony_ci}
42619e95205Sopenharmony_ci
42719e95205Sopenharmony_ci/*
42819e95205Sopenharmony_ci * @tc.number: A2dpSource022
42919e95205Sopenharmony_ci * @tc.name: GetRenderPosition
43019e95205Sopenharmony_ci * @tc.desc: Get delayValue, sendDataSize and timeStamp from a2dp
43119e95205Sopenharmony_ci*/
43219e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetRenderPosition, TestSize.Level1)
43319e95205Sopenharmony_ci{
43419e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetRenderPosition start";
43519e95205Sopenharmony_ci
43619e95205Sopenharmony_ci    uint16_t delayValue = 0;
43719e95205Sopenharmony_ci    uint16_t sendDataSize = 0;
43819e95205Sopenharmony_ci    uint32_t timeStamp = 0;
43919e95205Sopenharmony_ci    profile_ = A2dpSource::GetProfile();
44019e95205Sopenharmony_ci    profile_->GetRenderPosition(delayValue, sendDataSize, timeStamp);
44119e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "delayValue =" << delayValue << ",sendDataSize =" << sendDataSize <<
44219e95205Sopenharmony_ci        ",timeStamp =" << timeStamp;
44319e95205Sopenharmony_ci
44419e95205Sopenharmony_ci    GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetRenderPosition end";
44519e95205Sopenharmony_ci}
44619e95205Sopenharmony_ci}  // namespace Bluetooth
44719e95205Sopenharmony_ci}  // namespace OHOS