Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a71c9ea6 authored by Myles Watson's avatar Myles Watson
Browse files

Use a single MockLeConnectionManagementCallbacks

Bug: 322230000
Test: atest bluetooth_test_gd_unit
Flag: TEST_ONLY
Change-Id: I4bd88b0d8358c2253d1f7c20f9e5c167c6829524
parent 5242037b
Loading
Loading
Loading
Loading
+2 −41
Original line number Diff line number Diff line
@@ -28,13 +28,12 @@
#include <queue>
#include <vector>

#include "hci/acl_manager/le_connection_management_callbacks.h"
#include "hci/acl_manager/le_connection_management_callbacks_mock.h"
#include "hci/address_with_type.h"
#include "hci/hci_layer_fake.h"
#include "hci/hci_packets.h"
#include "hci/le_acl_connection_interface.h"
#include "os/handler.h"
#include "os/log.h"
#include "os/thread.h"

using namespace bluetooth;
@@ -62,44 +61,6 @@ constexpr uint16_t kContinuationNumber = 0x32;
namespace bluetooth::hci::acl_manager {

namespace {

class TestLeConnectionManagementCallbacks : public hci::acl_manager::LeConnectionManagementCallbacks {
  void OnConnectionUpdate(
      hci::ErrorCode /* hci_status */,
      uint16_t /* connection_interval */,
      uint16_t /* connection_latency */,
      uint16_t /* supervision_timeout */) override {}
  virtual void OnDataLengthChange(
      uint16_t /* tx_octets */,
      uint16_t /* tx_time */,
      uint16_t /* rx_octets */,
      uint16_t /* rx_time */) override {}
  virtual void OnDisconnection(hci::ErrorCode /* reason */) override {}
  virtual void OnReadRemoteVersionInformationComplete(
      hci::ErrorCode /* hci_status */,
      uint8_t /* lmp_version */,
      uint16_t /* manufacturer_name */,
      uint16_t /* sub_version */) override {}
  virtual void OnLeReadRemoteFeaturesComplete(
      hci::ErrorCode /* hci_status */, uint64_t /* features */) override {}
  virtual void OnPhyUpdate(
      hci::ErrorCode /* hci_status */, uint8_t /* tx_phy */, uint8_t /* rx_phy */) override {}
  MOCK_METHOD(
      void,
      OnLeSubrateChange,
      (hci::ErrorCode hci_status,
       uint16_t subrate_factor,
       uint16_t peripheral_latency,
       uint16_t continuation_number,
       uint16_t supervision_timeout),
      (override));

  // give access to private method for test:
  friend class LeAclConnectionTest;
  FRIEND_TEST(LeAclConnectionTest, LeSubrateRequest_success);
  FRIEND_TEST(LeAclConnectionTest, LeSubrateRequest_error);
};

class TestLeAclConnectionInterface : public hci::LeAclConnectionInterface {
 private:
  void EnqueueCommand(
@@ -210,7 +171,7 @@ class LeAclConnectionTest : public ::testing::Test {
  std::shared_ptr<LeAclConnection::Queue> queue_;

  TestLeAclConnectionInterface le_acl_connection_interface_;
  TestLeConnectionManagementCallbacks callbacks_;
  MockLeConnectionManagementCallbacks callbacks_;
  LeAclConnection* connection_;
};

+1 −36
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@

#include "common/bidi_queue.h"
#include "hci/acl_manager/le_connection_callbacks.h"
#include "hci/acl_manager/le_connection_management_callbacks.h"
#include "hci/acl_manager/le_connection_management_callbacks_mock.h"
#include "hci/address_with_type.h"
#include "hci/controller.h"
#include "hci/hci_layer_fake.h"
@@ -240,41 +240,6 @@ class MockLeAcceptlistCallbacks : public LeAcceptlistCallbacks {
  MOCK_METHOD(void, OnResolvingListChange, (), (override));
};

class MockLeConnectionManagementCallbacks : public LeConnectionManagementCallbacks {
 public:
  MOCK_METHOD(
      void,
      OnConnectionUpdate,
      (hci::ErrorCode hci_status,
       uint16_t connection_interval,
       uint16_t connection_latency,
       uint16_t supervision_timeout),
      (override));
  MOCK_METHOD(
      void,
      OnDataLengthChange,
      (uint16_t tx_octets, uint16_t tx_time, uint16_t rx_octets, uint16_t rx_time),
      (override));
  MOCK_METHOD(void, OnDisconnection, (ErrorCode reason), (override));
  MOCK_METHOD(
      void,
      OnReadRemoteVersionInformationComplete,
      (hci::ErrorCode hci_status, uint8_t lmp_version, uint16_t manufacturer_name, uint16_t sub_version),
      (override));
  MOCK_METHOD(void, OnLeReadRemoteFeaturesComplete, (hci::ErrorCode hci_status, uint64_t features), (override));
  MOCK_METHOD(
      void, OnPhyUpdate, (hci::ErrorCode hci_status, uint8_t tx_phy, uint8_t rx_phy), (override));
  MOCK_METHOD(
      void,
      OnLeSubrateChange,
      (hci::ErrorCode hci_status,
       uint16_t subrate_factor,
       uint16_t peripheral_latency,
       uint16_t continuation_number,
       uint16_t supervision_timeout),
      (override));
};

class LeImplTest : public ::testing::Test {
 protected:
  void SetUp() override {
+2 −25
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include "common/bind.h"
#include "common/init_flags.h"
#include "hci/acl_manager/le_connection_management_callbacks_mock.h"
#include "hci/address.h"
#include "hci/address_with_type.h"
#include "hci/class_of_device.h"
@@ -464,31 +465,7 @@ class AclManagerWithLeConnectionTest : public AclManagerWithCallbacksTest {
  std::shared_ptr<LeAclConnection> connection_;
  AddressWithType remote_with_type_;

  class MockLeConnectionManagementCallbacks : public LeConnectionManagementCallbacks {
   public:
    MOCK_METHOD1(OnDisconnection, void(ErrorCode reason));
    MOCK_METHOD4(
        OnConnectionUpdate,
        void(
            hci::ErrorCode hci_status,
            uint16_t connection_interval,
            uint16_t connection_latency,
            uint16_t supervision_timeout));
    MOCK_METHOD4(OnDataLengthChange, void(uint16_t tx_octets, uint16_t tx_time, uint16_t rx_octets, uint16_t rx_time));
    MOCK_METHOD4(
        OnReadRemoteVersionInformationComplete,
        void(hci::ErrorCode hci_status, uint8_t version, uint16_t manufacturer_name, uint16_t sub_version));
    MOCK_METHOD2(OnLeReadRemoteFeaturesComplete, void(hci::ErrorCode hci_status, uint64_t features));
    MOCK_METHOD3(OnPhyUpdate, void(hci::ErrorCode hci_status, uint8_t tx_phy, uint8_t rx_phy));
    MOCK_METHOD5(
        OnLeSubrateChange,
        void(
            hci::ErrorCode hci_status,
            uint16_t subrate_factor,
            uint16_t peripheral_latency,
            uint16_t continuation_number,
            uint16_t supervision_timeout));
  } mock_le_connection_management_callbacks_;
  MockLeConnectionManagementCallbacks mock_le_connection_management_callbacks_;
};

class AclManagerWithResolvableAddressTest : public AclManagerWithCallbacksTest {