implemented toFactory method

This commit is contained in:
Sergey Penkovsky
2020-07-03 08:27:49 +03:00
parent 5e21fa844b
commit 6616c4d6e7
2 changed files with 11 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import 'package:dart_di/di_container.dart'; 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/resolver.dart';
import 'package:dart_di/resolvers/singelton_resolver.dart'; import 'package:dart_di/resolvers/singelton_resolver.dart';
import 'package:dart_di/resolvers/value_resolver.dart'; import 'package:dart_di/resolvers/value_resolver.dart';
@@ -52,8 +53,8 @@ class ResolvingContext<T> extends Resolver {
* Создать фабричный resolver без каких-либо зависимостей * Создать фабричный resolver без каких-либо зависимостей
*/ */
ResolvingContext<T> toFactory<TImpl extends T>(TImpl Function() factory) { ResolvingContext<T> toFactory<TImpl extends T>(TImpl Function() factory) {
// TODO: implement toFactory Resolver<TImpl> resolver = FactoryResolver<TImpl>(factory);
throw UnimplementedError(); return toResolver(resolver);
} }
/** /**

View File

@@ -132,6 +132,14 @@ void main() {
expect(containerB.resolve<int>(), expectedIntValue); expect(containerB.resolve<int>(), expectedIntValue);
}); });
test("Bind to the factory resolves with value", () {
final container = DiContainer();
final b = B();
container.bind<A>().toFactory(() => b);
expect(container.resolve<A>(), b);
});
} }
ResolverMock<T> _makeResolver<T>(T expectedValue) { ResolverMock<T> _makeResolver<T>(T expectedValue) {