From 6616c4d6e7ab20989eceb7e699896eba44491579 Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Fri, 3 Jul 2020 08:27:49 +0300 Subject: [PATCH] implemented toFactory method --- lib/resolvers/resolving_context.dart | 5 +++-- test/di_container_test.dart | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/resolvers/resolving_context.dart b/lib/resolvers/resolving_context.dart index 4dbd999..c5535a2 100644 --- a/lib/resolvers/resolving_context.dart +++ b/lib/resolvers/resolving_context.dart @@ -1,4 +1,5 @@ import 'package:dart_di/di_container.dart'; +import 'package:dart_di/resolvers/factory_resolver.dart'; import 'package:dart_di/resolvers/resolver.dart'; import 'package:dart_di/resolvers/singelton_resolver.dart'; import 'package:dart_di/resolvers/value_resolver.dart'; @@ -52,8 +53,8 @@ class ResolvingContext extends Resolver { * Создать фабричный resolver без каких-либо зависимостей */ ResolvingContext toFactory(TImpl Function() factory) { - // TODO: implement toFactory - throw UnimplementedError(); + Resolver resolver = FactoryResolver(factory); + return toResolver(resolver); } /** diff --git a/test/di_container_test.dart b/test/di_container_test.dart index b3e0e6b..3b54afc 100644 --- a/test/di_container_test.dart +++ b/test/di_container_test.dart @@ -132,6 +132,14 @@ void main() { expect(containerB.resolve(), expectedIntValue); }); + + test("Bind to the factory resolves with value", () { + final container = DiContainer(); + final b = B(); + container.bind().toFactory(() => b); + + expect(container.resolve(), b); + }); } ResolverMock _makeResolver(T expectedValue) {