119e95205Sopenharmony_ci/* 219e95205Sopenharmony_ci * Copyright (C) 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 1619e95205Sopenharmony_ci#include <gtest/gtest.h> 1719e95205Sopenharmony_ci#include "bluetooth_pan.h" 1819e95205Sopenharmony_ci#include "bluetooth_remote_device.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_ciclass PanObserverTest : public PanObserver { 2819e95205Sopenharmony_cipublic: 2919e95205Sopenharmony_ci PanObserverTest() = default; 3019e95205Sopenharmony_ci virtual ~PanObserverTest() = default; 3119e95205Sopenharmony_ci virtual void OnConnectionStateChanged(const BluetoothRemoteDevice &device, int state, int cause) {} 3219e95205Sopenharmony_ci 3319e95205Sopenharmony_ciprivate: 3419e95205Sopenharmony_ci}; 3519e95205Sopenharmony_ci 3619e95205Sopenharmony_ci 3719e95205Sopenharmony_cistatic Bluetooth::Pan *profile_; 3819e95205Sopenharmony_cistatic std::shared_ptr<PanObserverTest> panObserverTest = std::make_shared<PanObserverTest>(); 3919e95205Sopenharmony_ci 4019e95205Sopenharmony_ciclass PanTest : public testing::Test { 4119e95205Sopenharmony_cipublic: 4219e95205Sopenharmony_ci PanTest(); 4319e95205Sopenharmony_ci ~PanTest(); 4419e95205Sopenharmony_ci 4519e95205Sopenharmony_ci static void SetUpTestCase(void); 4619e95205Sopenharmony_ci static void TearDownTestCase(void); 4719e95205Sopenharmony_ci void SetUp(); 4819e95205Sopenharmony_ci void TearDown(); 4919e95205Sopenharmony_ci bool CompareDevice(std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState, 5019e95205Sopenharmony_ci std::vector<std::string> bluetoothRemoteDeviceAddr); 5119e95205Sopenharmony_ci 5219e95205Sopenharmony_ciprivate: 5319e95205Sopenharmony_ci}; 5419e95205Sopenharmony_ci 5519e95205Sopenharmony_ciPanTest::PanTest() 5619e95205Sopenharmony_ci{ 5719e95205Sopenharmony_ci} 5819e95205Sopenharmony_ci 5919e95205Sopenharmony_ciPanTest::~PanTest() 6019e95205Sopenharmony_ci{ 6119e95205Sopenharmony_ci} 6219e95205Sopenharmony_ci 6319e95205Sopenharmony_civoid PanTest::SetUpTestCase(void) 6419e95205Sopenharmony_ci{ 6519e95205Sopenharmony_ci} 6619e95205Sopenharmony_civoid PanTest::TearDownTestCase(void) 6719e95205Sopenharmony_ci{ 6819e95205Sopenharmony_ci} 6919e95205Sopenharmony_civoid PanTest::SetUp() 7019e95205Sopenharmony_ci{ 7119e95205Sopenharmony_ci} 7219e95205Sopenharmony_civoid PanTest::TearDown() 7319e95205Sopenharmony_ci{ 7419e95205Sopenharmony_ci} 7519e95205Sopenharmony_cibool PanTest::CompareDevice(std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState, 7619e95205Sopenharmony_ci std::vector<std::string> bluetoothRemoteDeviceAddr) 7719e95205Sopenharmony_ci{ 7819e95205Sopenharmony_ci if (bluetoothRemoteDeviceByState.size() != bluetoothRemoteDeviceAddr.size()) { 7919e95205Sopenharmony_ci return false; 8019e95205Sopenharmony_ci } 8119e95205Sopenharmony_ci for (int i = 0; i < bluetoothRemoteDeviceByState.size(); i++) { 8219e95205Sopenharmony_ci if (bluetoothRemoteDeviceByState[i].GetDeviceAddr().compare(bluetoothRemoteDeviceAddr[i]) != 0) { 8319e95205Sopenharmony_ci return false; 8419e95205Sopenharmony_ci } 8519e95205Sopenharmony_ci } 8619e95205Sopenharmony_ci return true; 8719e95205Sopenharmony_ci} 8819e95205Sopenharmony_ci 8919e95205Sopenharmony_ci/* 9019e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_GetDevicesByStates_00100 9119e95205Sopenharmony_ci * @tc.name: GetDevicesByStates 9219e95205Sopenharmony_ci * @tc.desc: 9319e95205Sopenharmony_ci */ 9419e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_GetDevicesByStates_00100, TestSize.Level1) 9519e95205Sopenharmony_ci{ 9619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_GetDevicesByStates_00100 start"; 9719e95205Sopenharmony_ci 9819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "GetDevicesByStates function test"; 9919e95205Sopenharmony_ci 10019e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 10119e95205Sopenharmony_ci std::vector<int> states; 10219e95205Sopenharmony_ci std::vector<std::string> bluetoothRemoteDeviceAddr; 10319e95205Sopenharmony_ci std::vector<BluetoothRemoteDevice> devices; 10419e95205Sopenharmony_ci profile_->GetDevicesByStates(states, devices); 10519e95205Sopenharmony_ci EXPECT_TRUE(CompareDevice(devices, bluetoothRemoteDeviceAddr)); 10619e95205Sopenharmony_ci 10719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_GetDevicesByStates_00100 end"; 10819e95205Sopenharmony_ci} 10919e95205Sopenharmony_ci 11019e95205Sopenharmony_ci/* 11119e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_GetDeviceState_00100 11219e95205Sopenharmony_ci * @tc.name: GetDeviceState 11319e95205Sopenharmony_ci * @tc.desc: 11419e95205Sopenharmony_ci */ 11519e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_GetDeviceState_00100, TestSize.Level1) 11619e95205Sopenharmony_ci{ 11719e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_GetDeviceState_00100 start"; 11819e95205Sopenharmony_ci 11919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "GetDeviceState function test"; 12019e95205Sopenharmony_ci 12119e95205Sopenharmony_ci int sucess = static_cast<int>(BTConnectState::DISCONNECTED); 12219e95205Sopenharmony_ci BluetoothRemoteDevice device; 12319e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 12419e95205Sopenharmony_ci int32_t state = static_cast<int32_t>(BTConnectState::DISCONNECTED); 12519e95205Sopenharmony_ci profile_->GetDeviceState(device, state); 12619e95205Sopenharmony_ci EXPECT_EQ(sucess, state); 12719e95205Sopenharmony_ci 12819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_GetDeviceState_00100 end"; 12919e95205Sopenharmony_ci} 13019e95205Sopenharmony_ci 13119e95205Sopenharmony_ci/* 13219e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_Disconnect_00100 13319e95205Sopenharmony_ci * @tc.name: Disconnect 13419e95205Sopenharmony_ci * @tc.desc: 13519e95205Sopenharmony_ci */ 13619e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_Disconnect_00100, TestSize.Level1) 13719e95205Sopenharmony_ci{ 13819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_Disconnect_00100 start"; 13919e95205Sopenharmony_ci 14019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "Disconnect function test"; 14119e95205Sopenharmony_ci 14219e95205Sopenharmony_ci BluetoothRemoteDevice device; 14319e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 14419e95205Sopenharmony_ci EXPECT_TRUE(profile_->Disconnect(device)); 14519e95205Sopenharmony_ci 14619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_Disconnect_00100 end"; 14719e95205Sopenharmony_ci} 14819e95205Sopenharmony_ci 14919e95205Sopenharmony_ci/* 15019e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_RegisterObserver_00100 15119e95205Sopenharmony_ci * @tc.name: RegisterObserver 15219e95205Sopenharmony_ci * @tc.desc: 15319e95205Sopenharmony_ci */ 15419e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_RegisterObserver_00100, TestSize.Level1) 15519e95205Sopenharmony_ci{ 15619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_RegisterObserver_00100 start"; 15719e95205Sopenharmony_ci 15819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "RegisterObserver function test"; 15919e95205Sopenharmony_ci 16019e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 16119e95205Sopenharmony_ci profile_->RegisterObserver(panObserverTest); 16219e95205Sopenharmony_ci 16319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_RegisterObserver_00100 end"; 16419e95205Sopenharmony_ci} 16519e95205Sopenharmony_ci 16619e95205Sopenharmony_ci/* 16719e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_DeregisterObserver_00100 16819e95205Sopenharmony_ci * @tc.name: DeregisterObserver 16919e95205Sopenharmony_ci * @tc.desc: 17019e95205Sopenharmony_ci */ 17119e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_DeregisterObserver_00100, TestSize.Level1) 17219e95205Sopenharmony_ci{ 17319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_DeregisterObserver_00100 start"; 17419e95205Sopenharmony_ci 17519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "DeregisterObserver function test"; 17619e95205Sopenharmony_ci 17719e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 17819e95205Sopenharmony_ci profile_->DeregisterObserver(panObserverTest); 17919e95205Sopenharmony_ci 18019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_DeregisterObserver_00100 end"; 18119e95205Sopenharmony_ci} 18219e95205Sopenharmony_ci 18319e95205Sopenharmony_ci/* 18419e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_OnConnectionStateChanged_00100 18519e95205Sopenharmony_ci * @tc.name: OnConnectionStateChanged 18619e95205Sopenharmony_ci * @tc.desc: 18719e95205Sopenharmony_ci */ 18819e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_OnConnectionStateChanged_00100, TestSize.Level1) 18919e95205Sopenharmony_ci{ 19019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_OnConnectionStateChanged_00100 start"; 19119e95205Sopenharmony_ci 19219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "OnConnectionStateChanged function test"; 19319e95205Sopenharmony_ci 19419e95205Sopenharmony_ci BluetoothRemoteDevice device; 19519e95205Sopenharmony_ci int state = static_cast<int>(BTConnectState::DISCONNECTED); 19619e95205Sopenharmony_ci panObserverTest->OnConnectionStateChanged(device, state, 0); 19719e95205Sopenharmony_ci 19819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_OnConnectionStateChanged_00100 end"; 19919e95205Sopenharmony_ci} 20019e95205Sopenharmony_ci 20119e95205Sopenharmony_ci/* 20219e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_SetTethering_00100 20319e95205Sopenharmony_ci * @tc.name: SetTethering 20419e95205Sopenharmony_ci * @tc.desc: 20519e95205Sopenharmony_ci */ 20619e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_SetTethering_00100, TestSize.Level1) 20719e95205Sopenharmony_ci{ 20819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_SetTethering_00100 start"; 20919e95205Sopenharmony_ci 21019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "SetTethering function test"; 21119e95205Sopenharmony_ci 21219e95205Sopenharmony_ci bool value = false; 21319e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 21419e95205Sopenharmony_ci EXPECT_TRUE(profile_->SetTethering(value)); 21519e95205Sopenharmony_ci 21619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_SetTethering_00100 end"; 21719e95205Sopenharmony_ci} 21819e95205Sopenharmony_ci 21919e95205Sopenharmony_ci/* 22019e95205Sopenharmony_ci * @tc.number: PAN_ModuleTest_IsTetheringOn_00100 22119e95205Sopenharmony_ci * @tc.name: IsTetheringOn 22219e95205Sopenharmony_ci * @tc.desc: 22319e95205Sopenharmony_ci */ 22419e95205Sopenharmony_ciHWTEST_F(PanTest, PAN_ModuleTest_IsTetheringOn_00100, TestSize.Level1) 22519e95205Sopenharmony_ci{ 22619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_IsTetheringOn_00100 start"; 22719e95205Sopenharmony_ci 22819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "IsTetheringOn function test"; 22919e95205Sopenharmony_ci 23019e95205Sopenharmony_ci profile_ = Pan::GetProfile(); 23119e95205Sopenharmony_ci bool result = false; 23219e95205Sopenharmony_ci profile_->IsTetheringOn(result); 23319e95205Sopenharmony_ci EXPECT_FALSE(result); 23419e95205Sopenharmony_ci 23519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "PAN_ModuleTest_IsTetheringOn_00100 end"; 23619e95205Sopenharmony_ci} 23719e95205Sopenharmony_ci} // namespace Bluetooth 23819e95205Sopenharmony_ci} // namespace OHOS