/ app / test / utils / hex_utils_test.dart
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  }