diff --git a/example/lib/shared/modules/profile/module_registry.dart b/example/lib/shared/modules/profile/module_registry.dart index 3787a53..c116ba7 100644 --- a/example/lib/shared/modules/profile/module_registry.dart +++ b/example/lib/shared/modules/profile/module_registry.dart @@ -4,7 +4,7 @@ import 'commands/change_user_name_command.dart'; import 'data/profile_repository.dart'; import 'presentation/ui_event.dart'; -class ProfileModuleRegistries extends ModuleBuzzRegistries { +class ProfileModuleRegistries extends BuzzEventHandlersRegistries { ProfileModuleRegistries(this.findRepository); final IProfileRepository Function() findRepository; diff --git a/lib/buzz_impl.dart b/lib/buzz_impl.dart index 7502fba..4138f2a 100644 --- a/lib/buzz_impl.dart +++ b/lib/buzz_impl.dart @@ -25,7 +25,7 @@ abstract class IBuzzBase { void init({ required Navigator navigator, FeedbacksExecutor? feedbacksExecutor, - List? moduleRegistries, + List? moduleRegistries, }); void fire(dynamic message); @@ -50,13 +50,13 @@ class BuzzBase implements IBuzzBase { late Navigator _navigator; late FeedbacksExecutor _feedbacksExecutor; - List? _moduleRegistries; + List? _moduleRegistries; @override void init({ required Navigator navigator, FeedbacksExecutor? feedbacksExecutor, - List? moduleRegistries, + List? moduleRegistries, }) { _navigator = navigator; _feedbacksExecutor = feedbacksExecutor ?? DefaultFeedbacksExecutor(); diff --git a/lib/infra/registries.dart b/lib/infra/registries.dart index 5559b5c..a11c925 100644 --- a/lib/infra/registries.dart +++ b/lib/infra/registries.dart @@ -1,12 +1,31 @@ import 'package:buzz/buzz.dart'; -abstract class IModuleBuzzRegistries { +abstract class IBuzzDataRegistries { + List get registries; +} + +abstract class BuzzDataRegistries extends IBuzzDataRegistries {} + +class DataRegistry { + DataRegistry({ + required this.binder, + }); + + final Function(T) binder; + dynamic get registryType => T; + + @override + String toString() => '$runtimeType type: $T handler: $binder'; +} + +abstract class IBuzzEventHandlersRegistries { List get commands; List get uiEvents; List get appEvents; } -abstract class ModuleBuzzRegistries extends IModuleBuzzRegistries { +abstract class BuzzEventHandlersRegistries + extends IBuzzEventHandlersRegistries { @override List get commands => const []; diff --git a/test/registries_test.dart b/test/registries_test.dart index 6499a70..602772d 100644 --- a/test/registries_test.dart +++ b/test/registries_test.dart @@ -3,13 +3,24 @@ import 'package:test/test.dart'; import 'fixtures/app_events.dart'; +class FakeDataRepository {} + void main() { test('AppEventRegistry.registryType works for base class', () { - final appEventRegistry = AppEventRegistry( + final registry = AppEventRegistry( handler: (event) { print(event); }, ); - expect(appEventRegistry.registryType, BaseAppEvent); + expect(registry.registryType, BaseAppEvent); + }); + + test('DataRegistry.registryType works for fake repository', () { + final registry = DataRegistry( + binder: (repository) { + print('Add $repository to DI'); + }, + ); + expect(registry.registryType, FakeDataRepository); }); }