1 // Copyright 2023 The Pigweed Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not 4 // use this file except in compliance with the License. You may obtain a copy of 5 // the License at 6 // 7 // https://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, WITHOUT 11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 // License for the specific language governing permissions and limitations under 13 // the License. 14 15 #pragma once 16 #include "pw_bluetooth_sapphire/internal/host/hci/low_energy_connection.h" 17 18 namespace bt::hci::testing { 19 20 class FakeLowEnergyConnection final : public LowEnergyConnection { 21 public: 22 FakeLowEnergyConnection(hci_spec::ConnectionHandle handle, 23 const DeviceAddress& local_address, 24 const DeviceAddress& peer_address, 25 pw::bluetooth::emboss::ConnectionRole role, 26 const Transport::WeakPtr& hci); 27 28 // Triggers the encryption change callback. 29 void TriggerEncryptionChangeCallback(hci::Result<bool> result); 30 TriggerPeerDisconnectCallback()31 void TriggerPeerDisconnectCallback() { 32 peer_disconnect_callback()( 33 *this, 34 pw::bluetooth::emboss::StatusCode::REMOTE_USER_TERMINATED_CONNECTION); 35 } 36 37 // LowEnergyConnection overrides: Disconnect(pw::bluetooth::emboss::StatusCode)38 void Disconnect(pw::bluetooth::emboss::StatusCode) override {} 39 bool StartEncryption() override; 40 41 // Number of times StartEncryption() was called. start_encryption_count()42 int start_encryption_count() const { return start_encryption_count_; } 43 44 private: 45 int start_encryption_count_ = 0; 46 47 BT_DISALLOW_COPY_AND_ASSIGN_ALLOW_MOVE(FakeLowEnergyConnection); 48 }; 49 50 } // namespace bt::hci::testing 51