hex_utils_test.dart
1 import 'dart:typed_data'; 2 3 import 'package:dead_drop/providers/messages_provider.dart'; 4 import 'package:flutter_test/flutter_test.dart'; 5 6 void main() { 7 group('bytesToHex', () { 8 test('converts bytes to lowercase hex', () { 9 final bytes = Uint8List.fromList([0xde, 0xad, 0xbe, 0xef]); 10 expect(bytesToHex(bytes), equals('deadbeef')); 11 }); 12 13 test('handles empty input', () { 14 expect(bytesToHex(Uint8List(0)), equals('')); 15 }); 16 17 test('pads single-digit hex values with zero', () { 18 final bytes = Uint8List.fromList([0x00, 0x01, 0x0f]); 19 expect(bytesToHex(bytes), equals('00010f')); 20 }); 21 22 test('handles all byte values (0x00-0xFF)', () { 23 final bytes = Uint8List.fromList(List.generate(256, (i) => i)); 24 final hex = bytesToHex(bytes); 25 expect(hex.length, equals(512)); 26 expect(hex.startsWith('000102'), isTrue); 27 expect(hex.endsWith('fdfeff'), isTrue); 28 }); 29 }); 30 31 group('hexToBytes', () { 32 test('converts hex string to bytes', () { 33 final result = hexToBytes('deadbeef'); 34 expect(result, equals(Uint8List.fromList([0xde, 0xad, 0xbe, 0xef]))); 35 }); 36 37 test('handles empty input', () { 38 expect(hexToBytes(''), equals(Uint8List(0))); 39 }); 40 41 test('handles uppercase hex', () { 42 final result = hexToBytes('DEADBEEF'); 43 expect(result, equals(Uint8List.fromList([0xde, 0xad, 0xbe, 0xef]))); 44 }); 45 }); 46 47 group('roundtrip', () { 48 test('hexToBytes(bytesToHex(x)) == x', () { 49 final original = Uint8List.fromList([1, 2, 3, 127, 128, 255]); 50 expect(hexToBytes(bytesToHex(original)), equals(original)); 51 }); 52 53 test('bytesToHex(hexToBytes(x)) == x', () { 54 const original = 'abcdef0123456789'; 55 expect(bytesToHex(hexToBytes(original)), equals(original)); 56 }); 57 58 test('roundtrip with all byte values', () { 59 final original = Uint8List.fromList(List.generate(256, (i) => i)); 60 expect(hexToBytes(bytesToHex(original)), equals(original)); 61 }); 62 }); 63 }