|
| 1 | +import 'package:flutter/material.dart'; |
1 | 2 | import 'package:flutter/services.dart'; |
2 | 3 | import 'package:flutter_secure_storage/flutter_secure_storage.dart'; |
3 | 4 | import 'package:flutter_secure_storage/test/test_flutter_secure_storage_platform.dart'; |
@@ -560,4 +561,53 @@ void main() { |
560 | 561 | expect(defaultOptions.toMap(), constructorOptions.toMap()); |
561 | 562 | }); |
562 | 563 | }); |
| 564 | + |
| 565 | + group('Listener Management Tests', () { |
| 566 | + late ValueChanged<String?> listener1; |
| 567 | + late ValueChanged<String?> listener2; |
| 568 | + |
| 569 | + setUp(() { |
| 570 | + storage.unregisterAllListeners(); |
| 571 | + listener1 = (value) => debugPrint('Listener 1: $value'); |
| 572 | + listener2 = (value) => debugPrint('Listener 2: $value'); |
| 573 | + }); |
| 574 | + |
| 575 | + test('Register listener adds correctly', () { |
| 576 | + storage.registerListener(key: 'key1', listener: listener1); |
| 577 | + expect(storage.getListeners['key1']?.contains(listener1), isTrue); |
| 578 | + }); |
| 579 | + |
| 580 | + test('Register multiple listeners on same key', () { |
| 581 | + storage |
| 582 | + ..registerListener(key: 'key1', listener: listener1) |
| 583 | + ..registerListener(key: 'key1', listener: listener2); |
| 584 | + expect(storage.getListeners['key1']?.length, 2); |
| 585 | + expect(storage.getListeners['key1'], containsAll([listener1, listener2])); |
| 586 | + }); |
| 587 | + |
| 588 | + test('Unregister listener removes specific listener', () { |
| 589 | + storage |
| 590 | + ..registerListener(key: 'key1', listener: listener1) |
| 591 | + ..registerListener(key: 'key1', listener: listener2) |
| 592 | + ..unregisterListener(key: 'key1', listener: listener1); |
| 593 | + expect(storage.getListeners['key1']?.contains(listener1), isFalse); |
| 594 | + expect(storage.getListeners['key1']?.contains(listener2), isTrue); |
| 595 | + }); |
| 596 | + |
| 597 | + test('Unregister all listeners for a key', () { |
| 598 | + storage |
| 599 | + ..registerListener(key: 'key1', listener: listener1) |
| 600 | + ..registerListener(key: 'key1', listener: listener2) |
| 601 | + ..unregisterAllListenersForKey(key: 'key1'); |
| 602 | + expect(storage.getListeners.containsKey('key1'), isFalse); |
| 603 | + }); |
| 604 | + |
| 605 | + test('Unregister all listeners for all keys', () { |
| 606 | + storage |
| 607 | + ..registerListener(key: 'key1', listener: listener1) |
| 608 | + ..registerListener(key: 'key2', listener: listener2) |
| 609 | + ..unregisterAllListeners(); |
| 610 | + expect(storage.getListeners.isEmpty, isTrue); |
| 611 | + }); |
| 612 | + }); |
563 | 613 | } |
0 commit comments