import 'dart:typed_data'; import 'package:flutter_test/flutter_test.dart'; import 'package:universal_ble/universal_ble.dart'; void main() { group('BlePeripheral models', () { test('normalizes UUIDs and defensively copies characteristic values', () { final initialValue = Uint8List.fromList([1, 2, 3]); final characteristic = BlePeripheralCharacteristic( uuid: 'fff1', properties: const [CharacteristicProperty.read], permissions: const [BlePeripheralCharacteristicPermission.read], initialValue: initialValue, ); initialValue[0] = 9; expect( BleUuidParser.compareStrings(characteristic.uuid, '0000fff1-0000-1000-8000-00805f9b34fb'), isTrue, ); expect(characteristic.initialValue, [1, 2, 3]); }); test('normalizes write event UUIDs and defensively copies payloads', () { final value = Uint8List.fromList([4, 5, 6]); final event = BlePeripheralWriteEvent( deviceId: 'client-1', service: 'fff0', characteristic: 'fff1', value: value, ); value[0] = 8; expect(event.deviceId, 'client-1'); expect(BleUuidParser.compareStrings(event.service, 'fff0'), isTrue); expect(BleUuidParser.compareStrings(event.characteristic, 'fff1'), isTrue); expect(event.value, [4, 5, 6]); }); }); }