From 456076ffa246005a86689947f0342aa0fd22f5cf Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Fri, 3 Jul 2020 08:43:20 +0300 Subject: [PATCH] implemented toFactory1 method --- lib/resolvers/resolving_context.dart | 5 +++-- test/di_container_test.dart | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/resolvers/resolving_context.dart b/lib/resolvers/resolving_context.dart index c5535a2..3680221 100644 --- a/lib/resolvers/resolving_context.dart +++ b/lib/resolvers/resolving_context.dart @@ -61,8 +61,9 @@ class ResolvingContext extends Resolver { * Создать фабричный resolver с 1 зависимостью от контейнера */ ResolvingContext toFactory1(T Function(T1) factory) { - // TODO: implement toFactory1 - throw UnimplementedError(); + Resolver resolver = + FactoryResolver(() => factory(_container.resolve())); + return toResolver(resolver); } /** diff --git a/test/di_container_test.dart b/test/di_container_test.dart index 3b54afc..9231982 100644 --- a/test/di_container_test.dart +++ b/test/di_container_test.dart @@ -140,6 +140,15 @@ void main() { expect(container.resolve(), b); }); + + test("Bind to the factory resolves with value", () { + final container = DiContainer(); + final b = B(); + container.bind().toValue(b); + container.bind().toFactory1((a) => DependOnA(a)); + + expect(container.resolve().a, b); + }); } ResolverMock _makeResolver(T expectedValue) {