Skip to main content

Module mock

Module mock 

Source
Expand description

Mock BLE adapter for testing

This module provides a simulated BLE adapter that enables unit and integration testing of Peat mesh logic without requiring actual BLE hardware.

§Features

  • Simulated device discovery and advertising
  • Configurable connection behavior (success, failure, latency)
  • Event tracking for test assertions
  • Multi-node simulation via shared state

§Example

use peat_btle::platform::mock::{MockBleAdapter, MockNetwork};
use peat_btle::platform::BleAdapter;
use peat_btle::config::{BleConfig, DiscoveryConfig};
use peat_btle::NodeId;

// Create a shared network for multiple mock nodes
let network = MockNetwork::new();

// Create two mock adapters on the same network
let mut adapter1 = MockBleAdapter::new(NodeId::new(0x111), network.clone());
let mut adapter2 = MockBleAdapter::new(NodeId::new(0x222), network.clone());

// Initialize and start both adapters
adapter1.init(&BleConfig::default()).await?;
adapter2.init(&BleConfig::default()).await?;

// Start advertising on adapter2 so it can be discovered
adapter2.start_advertising(&DiscoveryConfig::default()).await?;

// Connect adapter1 to adapter2
let conn = adapter1.connect(&NodeId::new(0x222)).await?;
assert!(conn.is_alive());

Structs§

DataPacket
A data packet sent between nodes
MockAdapterConfig
Configuration for mock adapter behavior
MockBleAdapter
Mock BLE adapter for testing
MockConnection
Mock BLE connection
MockNetwork
Shared network state for multiple mock adapters

Enums§

MockEvent
Events recorded by the mock adapter for test assertions